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)