まだPreviewですが、Azure App Service Web Apps内で利用できるローカルのMySQLインスタンスが構成できるようになりました。(Preview)
Azure
Azure Update (2016.08.18)
お盆も終わって久しぶりな感じ。
Azure Update (2016.08.04)
夏って感じ。
Azure Functions で実行時のIDを取得する
Azure Functionsを使ってるときに今実行されている状態のIDを使いたい場合があるかと思います。後で追跡する場合に呼び出されたIDとか関連付けされていると便利ですよね。
というわけで、呼び出しログ(Invocation Log)とかで使われるIDをコード内で使う方法です。
C#の場合
using System;
public static void Run(string input, ExecutionContext executionContext, TraceWriter log)
{
log.Info($"InvocationId: {executionContext.InvocationId}");
}
C#の場合はExecutionContext型の引数を受け取るようにすればOKです。ExecutionContext型にはInvocationIdプロパティがあるのでそちらを参照します。ちなみに内部的にも同じ型でcontextという名前でバインディングされるので、contextという引数名にするとバインディングエラーになります。修正されるかもしれませんが。
JavaScriptの場合
module.exports = function (context, input) {
context.log('Node.js manually triggered function called with input:', input);
context.log(context.bindingData.InvocationId)
context.done();
};
JavaScriptの場合はcontextのbindingDataにInvocationIdが生えてるのでそちらを使います。
実行結果はこんな感じで、呼び出しIDが取得できます。
2016-08-03T19:14:03.491 Function started (Id=f58733a5-d6ce-4035-8a42-c6b95b7d79b7) 2016-08-03T19:14:03.491 InvocationId: f58733a5-d6ce-4035-8a42-c6b95b7d79b7 2016-08-03T19:14:03.491 Function completed (Success, Id=f58733a5-d6ce-4035-8a42-c6b95b7d79b7)
Azure Update (2016.07.28)
そんなわけで2週間分ぐらいです。
Azure Functions で実行中にコンパイルするとどうなるの
裏でFunction Appが実行中のときにコンパイルして(コンパイルエラーになったりして)るときに実行中のものはどうなるのか、予想では別物なんで問題ないと思いますが一応。
検証用コード
using System.Net;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
log.Info($"Start ----");
// parse query parameter
string name = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
.Value;
await Task.Delay(TimeSpan.FromSeconds(20));
// Get request body
dynamic data = await req.Content.ReadAsAsync<object>();
// Set name to query string or body data
name = name ?? data?.name;
log.Info($"End ----------");
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}
HttpTriggerなC#のテンプレートにStartとEndのログと間にTask.Delayで処理止めてるだけのシンプルなやつです。
※ログにFunction Startedとか出るので無駄な気もするけど一応
手順的にはこんな感じ
1. 上記コードを実行する(適当に呼び出す)
2. Task.Delayしてる間にコードを適当に弄ってSaveしてコンパイルエラーにする
3. 結果を見る
4. そのまま再度呼び出す
実行結果はこんな感じになりました
2016-07-19T03:34:42.334 Function started (Id=14c91f2c-2490-437c-b461-258a13872d82) 2016-07-19T03:34:42.334 Start ---- 2016-07-19T03:34:45.698 Script for function 'HttpTriggerCSharp1' changed. Reloading. 2016-07-19T03:34:45.698 Compiling function script. 2016-07-19T03:34:45.776 run.csx(14,13): error CS1002: ; expected 2016-07-19T03:34:45.776 run.csx(11,48): error CS0246: The type or namespace name 'aaaa' could not be found (are you missing a using directive or an assembly reference?) 2016-07-19T03:34:45.776 run.csx(14,13): error CS0103: The name 'data' does not exist in the current context 2016-07-19T03:34:45.776 run.csx(17,20): error CS0103: The name 'data' does not exist in the current context 2016-07-19T03:34:45.776 run.csx(14,5): warning CS0168: The variable 'dynamic' is declared but never used 2016-07-19T03:34:45.776 Compilation failed. 2016-07-19T03:35:02.334 End ---------- 2016-07-19T03:35:02.334 Function completed (Success, Id=14c91f2c-2490-437c-b461-258a13872d82) 2016-07-19T03:35:27.915 Function compilation error 2016-07-19T03:35:27.915 run.csx(14,13): error CS1002: ; expected 2016-07-19T03:35:27.915 run.csx(11,48): error CS0246: The type or namespace name 'aaaa' could not be found (are you missing a using directive or an assembly reference?) 2016-07-19T03:35:27.915 run.csx(14,13): error CS0103: The name 'data' does not exist in the current context 2016-07-19T03:35:27.915 run.csx(17,20): error CS0103: The name 'data' does not exist in the current context 2016-07-19T03:35:27.915 run.csx(14,5): warning CS0168: The variable 'dynamic' is declared but never used 2016-07-19T03:35:27.915 Function completed (Failure) 2016-07-19T03:35:27.961 Exception while executing function: Functions.HttpTriggerCSharp1. Microsoft.Azure.WebJobs.Script: Script compilation failed.
StartとEndの間でコンパイル走ってエラーになってますが、Function Id=14c91f2c-2490-437c-b461-258a13872d82は継続して処理が完了してます。
その後再度呼び出してみるとコンパイルが完了してないので再度コンパイル→失敗→500エラーが返る、という感じです。
予想通りでしたね。なんかおかしい、という場合はぜひ追加の検証をお願いします。
Azure Update (2016.07.13)
WPC関連とか他いろいろ。
Microsoft World Partner Conference 2016 Day 2 Keynote
Day 2あると思わなかったよ(
2日目はちょっとテクノロジーカットですね。あとおさらい感があります。
Azure Update (2016.07.08)
こまごま。
App Service
- 2016-07-07 Release Update
- Logic AppsのUpdateですね。細々したところですけど。
HDInsight
- HDInsight tool in Azure Toolkit for Eclipse is GA!
- Eclipse用のHDInsightツールがGAです
Azure Automation
- Automation schedules support time zones and daylight saving
- スケジュールでタイムゾーン指定がサポートされたのと、夏時間調整にも対応
SQL Database
- General availability: Always Encrypted for Azure SQL Database
- Always Encrypted now generally available in Azure SQL Database
- Always Encrypted機能がGAしました。
Power BI
- Power BI publish to web General Availability
- Power BIをWebに埋め込める publish to web がGAしました
- Power BI Embedded General Availability coming soon!
- 顧客向け組み込みPower BIももうすぐGA。11日なんでWPCで正式リリースですかね。
Azure Update (2016.07.07)
ちょっと大人しい感じ。
Azure Container Service
- Windows Server containers on Azure Container Service private preview
- ACS上で動作するWindows Server ContainersのPrivate Previewが始まりました。
- 登録が必要なようなので興味がある人はぜひ。(いくつかのアンケートに記入後、承認されるまで待つ感じです)
Application Insights
- New Application Insights metric widget for Visual Studio Team Services
- VSTS用ウィジェットとしてApplication Insightsのメトリックを表示させることができるようです。
Virtual Machines
- General availability of IaaS migration from classic to Resource Manager
- クラシックからリソースマネージャへの IaaS マイグレーションが一般提供開始に
- 一応GAしてました
- まだまだ注意点等は多いので気を付けましょう(構成方法も変わるので)
- AzureのクラシックVMからARMへのマイグレーション機能がGAしてました
- AzureクラシックVMからARMへのマイグレーションにおける注意点
SQL Database
- Point-in-time restore retention for Standard tier extended to 35 days
- ポイントインタイムリストアがStandardでも35日前まで戻せるようになりました。(前まで14日)
Azure Functions
- ランタイム ver 0.3がリリースされてました。
Azure Storage
- General availability: Azure cool blob storage in Canada
- 一般提供開始:カナダでの Azure cool blob Storage
- カナダでもCool Blob Storageが使えるようになりました。
Media Services / Media Analytics
- Announcing: Video OCR Public Preview
- 動画内のOCRですね。日本語も対応。
Azure Redis Cache
- Azure Redis Cache: Preview of new administration options in Premium tier
- PremiumでRedis Cacheの再起動とかができるようになりました
- How to administer Azure Redis Cache
DocumentDB
- DocumentDB throughput calculator update
- DocumentDB capacity planner update
- スループットやキャパシティの計算ツールなどがアップデートされました。
Azure Active Directory
- #AzureAD updated with new admin roles
- “Privileged Role Administrator”, “Security Administrator”,“Security Reader”の3つのロールが増えました。
- それぞれRBACで使ったりできます。
その他
- MS クラウド ニュースまとめ – Microsoft R Server 一般提供, Azure Information Protectionパブリックプレビュー提供, 他 (2016/06/22)
- 【Azureなう 6/28号】DockerCon 2016でのアップデートを一挙解説!
- 【Azureなう 7/5号】Red Hat SummitやMongoDB Worldでの新発表まとめ
- MicrosoftがRed Hat Summitでエンタープライズ クラウド向けの新しいオープン ソースの進展を発表
- Microsoft announcing new open source advancements for the enterprise cloud at Red Hat Summit
- Red Hat, Codenvy and Microsoft Collaborate on Language Server Protocol
- マイクロソフト、プログラミング環境の共通プロトコルをオープンソースで提供
- マイクロソフト、Azureアプリケーションの可用性を高める新チェックリストを公開
- Azure データセンターから発生するお客様の VM に対して行われる通信について
- はやくNSGのタグで気にしなくていいようにしてほしい
- Ubuntu Desktop の VS Code で SQL Server にクエリを実行してみる
- 2016/7 版の SSMS で SQL DataWarehouse に対応しました
- Announcing Microsoft R on Apache Spark and R Client at the Hadoop Summit
- Microsoft R on Apache SparkとかR Clientとかその辺の話
- Hadoop SummitとRed Hat Summit
- Azure HDInsight application platform: Install solutions built for the Apache Hadoop ecosystem