在 Azure 函数中使用相关 ID 进行记录

Logging With Correlation Id in Azure Function

任何人都可以建议我如何实现为每个 http 请求的可追溯性添加关联 ID 到以下功能。

[FunctionName("GetCars")]
public async Task<IActionResult> GetCars([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "api/v1/id/{id}")] HttpRequest req, Guid id)
{
    try
    {
        if (id == Guid.Empty)
        {
            _logger.LogError("Id is Empty");
        }

        var cars= _deviceService.GetCars(id);

        return new OkObjectResult(cars);
    }
    catch (Exception ex)
    {               
        _logger.LogError(ex, "Failed to Fetch Cars");
                
    }
}

所以如果我没记错的话,你想要的是在出现异常的情况下你可以在正文中 return *一些东西* 以便你可以在 Application Insights 中找到那个事件?如果是这样,试试这个:

var requestTelemetry = req.HttpContext.Features.Get<RequestTelemetry>();
var operationId = requestTelemetry.Context.Operation.Id;

并将 operationId 作为结果的一部分发送。

operationId 可用于在 Application Insights 中跟踪整个操作,从请求到异常。