Azure服务总线客户端是否自动对从服务总线返回的瞬态错误使用重试



我有一个非常简单的Azure函数,它使用Http触发器向Azure服务总线主题发送消息。如果服务总线返回瞬态错误,我想重试此功能。我已经查看了默认策略,但我不知道如何验证它是否会被开箱即用。我需要在我的函数代码中添加任何内容以确保使用这样的重试策略吗?

我还想记录重试策略失败后未能加载到服务总线上的消息。我应该将函数的内容包装在try-catch块中,并在catch语句中执行日志吗?

[FunctionName("MessageLoader")]
[return: ServiceBus("%Topic_Name%", Connection = "Topic_Connection")]
public static async Task<TopicMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "domain/load-message")] HttpRequestMessage req)
{
var stringRequestBody = await req.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<TopicMessage>(stringRequestBody);
}

是的,在这种情况下(服务总线绑定(,使用默认的重试策略。你不需要做任何特别的事情。为了验证它是否有效,如果您正确集成,每当调用失败时,您都应该在应用程序洞察中看到失败的依赖关系。

对于第二个问题,如果重试放弃后失败,则不需要手动登录。如果您正确集成了错误日志,您应该会看到自动捕获的应用程序洞察。

如果您想在失败时记录自定义错误,您应该通过自己创建Servicebus消息发送器来使用它,而不是函数输出绑定。

相关内容

最新更新