Мы используем ServiceBus с несколькими темами и хотим попробовать с помощью функций Azure создать новую функцию, которая будет настроена с привязкой входящей служебной шины для определенной темы. Мы также хотим попробовать план потребления, в котором сама Azure будет поддерживать эту функцию, и нам не нужно будет ее размещать
Проблема в том, что новые сообщения не запускают функцию лазури для запуска. Когда доступ к функции Azure осуществляется через портал Azure, и он работает (на основе AppInsights Live), он обрабатывает сообщения нормально. Но после 5 минут бездействия это останавливает это. После отправки новых сообщений в эту тему - функция Azure не запускает новый хост и не обрабатывает новые сообщения.
Итак, мой вопрос: как функция Azure поддерживает подписку ServiceBus? Насколько я понимаю, ему нужно подключиться к служебной шине в режиме PeekLock и ждать новых сообщений, и это происходит внутри функции Azure, когда она работает. Но что произойдет, если функция была остановлена из-за неактивности? Функция Azure каким-то образом подписывается на некоторые компоненты ServiceBus внутренним способом, поэтому при появлении нового сообщения создаются новые узлы функций и обрабатываются сообщения?
Мы используем Функции Azure v1 с Развернутым способом, когда у нас есть библиотека классов с реальным кодом функции и она развернута из VSTS. Наши мероприятия не происходят слишком часто, поэтому мы проводим пару мероприятий в день.
Мы подключаемся к ServiceBus через AMQP, и наш триггер объявляется как параметр функции, например:
[FunctionName("SomeFunction")]
public static void Run(
[ServiceBusTrigger("someTopicName","someSubscriptionName", AccessRights.Listen)]
string messageBody,
TraceWriter log)
{