我想使用Microsoft.Azure.WebJobs.ExecutionContext
在函数运行时获取InvocationId
,但是是否有一种方法可以在实际函数调用之外获取它。
因此,如果调用类需要某种上下文,则可以使用此内容。这可能吗?
我想使用Microsoft.Azure.WebJobs.ExecutionContext
在函数运行时获取InvocationId
,但是是否有一种方法可以在实际函数调用之外获取它。
因此,如果调用类需要某种上下文,则可以使用此内容。这可能吗?
你需要将它作为参数在所有的调用中传递,试图通过一些环境存储(如TLS
或AsyncLocal
)来解决这个问题可能不是最佳的方法,但可能会起作用。
如果你不使用异步API,你可能可以这样做:
[ThreadLocal]
public static Guid InvocationId;
...但是如果你使用异步,你可以尝试:
public static AsyncLocal<Guid> InvocationId = new AsyncLocal<Guid>();
祝你好运!
public static HttpResponseMessage Run(HttpRequestMessage req, TraceWriter log, ExecutionContext context)
{
return req.CreateResponse(System.Net.HttpStatusCode.OK, context.InvocationId);
}
所以如果你调用任何方法,你可能需要将这个id传递给它。我不确定是否有任何静态助手可以做到这一点。