Новые события не приходят из служебной шины Azure с неактивной функцией Azure - PullRequest
0 голосов
/ 17 мая 2018

Мы используем 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)
{
...