У меня есть функция Azure, использующая привязку ввода к служебной шине и привязку вывода к служебной шине.
SB_Input -> AzureFunction -> SB_Output
[FunctionName("MyFunction")]
[return: ServiceBus("%OutputTopic%", Connection = "OutputServiceBusAccessKey")]
public async Task<Message> ProcessMessage(
[ServiceBusTrigger("%InputTopic%", "%InputSubscription%", Connection = "InputServiceBusAccessKey")]
Message message)
{
// stuff happening
}
Когда входная привязка неверна, мы просто замечаем нарастание очереди. Однако, когда в одном из наших развертываний не удалось правильно настроить выходную привязку для служебной шины, мы обнаруживаем, что обработка сообщения в журналах проходит успешно (!). Мы ожидаем, что обработка сообщения завершится неудачно (ошибка в наших журналах и сообщение в очереди недоставленных сообщений). В настоящее время мы видим следующее сообщение об успешном завершении:
Executed 'MyFunction' (Succeeded, Id=99914403-e968-46fc-9ea1-dbb7f81a3421, Duration=1ms)
Это делает привязку вывода непригодной для использования, так как ошибка в развертывании приводит к сбою функции Azure без уведомления.
Что мы можем сделать чтобы функция Azure не выходила из строя тихо?