首页 文章

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

提问于
浏览
0

我有一系列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 回答

  • 2

    InvocationId字段的定义是defined as

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

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

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

相关问题