Azure函数 - 如何更改函数中的调用ID?

时间:2018-04-04 17:48:28

标签: azure azure-functions

我有一系列Azure功能,我想通过InovcationId跟踪它们。在Application Insights中,InvocationId称为operation_Id。

我要做的是将operation_Id设置为在几个不同的Azure功能中相同。

当我通过跟随this answer传递ExecutionContext时,我可以在Azure函数中读取此属性,但我似乎无法改变它。有没有办法从Azure函数内部更改此值?

public static class TestOperationId
{
    [FunctionName("TestOperationId")]
    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, 
                                                        ILogger log,
                                                        ExecutionContext exeCtx
                                                        )
    {
        var input = await req.Content.ReadAsStringAsync();
        log.Info(input);
        exeCtx.InvocationId = Guid.Parse(input);
        return req.CreateResponse(HttpStatusCode.OK);
    }
}

1 个答案:

答案 0 :(得分:2)

InvocationId字段的定义是defined as

  

提供唯一标识当前调用的调用ID

Azure Functions不提供更改此功能,因为这意味着代码可以覆盖平台的方法来检测函数的唯一调用,这会干扰平台的“计费”和“度量标准”等内容。

听起来你真正想要的是跨功能关联。 Application Insights团队正在开展工作以帮助支持此功能,但与此同时,您可以看到其他人正在使用的解决方案,例如here