我有一个非常简单的Azure函数,该函数使用Http触发器将消息发送到Azure Service Bus主题。如果服务总线返回瞬时错误,我想重试此功能。我已经查看过the default policy,但是我不知道如何验证是否可以立即使用。我是否需要在功能代码中添加任何内容,以确保将使用这种重试策略?
我还想记录重试策略失败后无法加载到服务总线上的消息。我应该将函数的内容包装在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);
}
答案 0 :(得分:2)
是的,在这种情况下(服务总线绑定),使用default retry policy。您不需要做任何特别的事情。要验证其是否正常运行,如果您failed dependencies通话失败,则应在应用程序见解中看到integrated it correctly。
对于第二个问题,如果重试放弃后失败,则无需手动登录。如果您integrated it correctly,应该会自动捕获捕获的应用程序见解中记录的错误。
如果要记录自定义错误,请使用Servicebus message sender by creating it yourself而不是函数输出绑定。