gpt4 book ai didi

azure-functions - Azure Functions、Servicebus 和 CorrelationId 的一致方法是什么?

转载 作者:行者123 更新时间:2023-12-05 08:05:59 24 4
gpt4 key购买 nike

在我的项目中,架构非常简单:一些 Azure FunctionsServicebus 触发。

比如我有一个发票流程:

  1. 创建发票
  2. 创建此发票的 PDF 并收款
  3. 将发票标记为已付款

每个步骤都是一个 Azure 函数。当函数完成创建发票 (1) 时,它会在服务总线中发送一条消息以触发为发票创建 PDF (2)。然后,如果付款成功,该函数将发送一条消息将发票标记为已付款。

我看到了这段代码

using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;

namespace WebApi.CorrelationId.MessageHandlers
{
public class AddCorrelationIdToResponseHandler : DelegatingHandler
{
private const string CorrelationIdHeaderName = "X-Correlation-Id";

protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
var responseMessage = await base.SendAsync(request, cancellationToken);

responseMessage
.Headers
.Add(CorrelationIdHeaderName, request.GetCorrelationId().ToString());

return responseMessage;
}
}
}

然后,在配置代码中

var httpConfiguration = new HttpConfiguration();

// your regular configuration

httpConfiguration.MessageHandlers.Add(new AddCorrelationIdToResponseHandler());

我不确定 Azure Functions 中是否有有效的 HttpConfiguration

如何使用 CorrelationId 跟踪所有步骤?

最佳答案

您可以尝试使用 Microsoft.Azure.WebJobs.ExecutionContext 中的 InvocationId。这将返回一个 Guid,您可以使用它来关联您的日志。在这里进一步阅读:https://learn.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#executioncontext

关于azure-functions - Azure Functions、Servicebus 和 CorrelationId 的一致方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62515674/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com