Приложение-функция Azure без функции и запуск фоновых потоков - PullRequest
0 голосов
/ 01 июня 2019

Можно ли запустить приложение-функцию Azure, у которого нет функции, но запущены потоки, которые будут читать сообщения из служебной шины Azure?

Похоже, что поток не читает сообщение от ASB.

Обновление

Приложение My Function (не имеет функций) работает локально, но не в Azure.

Ответы [ 2 ]

3 голосов
/ 01 июня 2019

Функции Azure продаются как

Больше, чем просто управляемые событиями вычисления без сервера

управляемая событиями часть является ключевой здесь.Фактическая функция в приложении Function - это код, который запускается, например, таймером, сообщением на служебной шине или событием Grid Event.Весь другой код должен поддерживать выполнение этой работы.Если у вас есть приложение Functions, которое не имеет никаких функций, у вас нет точки входа для запуска кода.

Два основных замечания:

  1. Это вродекак будто вы пытаетесь злоупотребить функциями
  2. Почему бы не использовать Триггеры служебной шины вместо того, чтобы поток делал то же самое вручную?

Посмотрите на этопример, взятый из привязок служебной шины Azure для функций Azure - триггер - пример C # :

[FunctionName("ServiceBusQueueTriggerCSharp")]                    
public static void Run(
    [ServiceBusTrigger("myqueue", AccessRights.Manage, Connection = "ServiceBusConnection")] 
    string myQueueItem,
    Int32 deliveryCount,
    DateTime enqueuedTimeUtc,
    string messageId,
    ILogger log)
{
    log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
    log.LogInformation($"EnqueuedTimeUtc={enqueuedTimeUtc}");
    log.LogInformation($"DeliveryCount={deliveryCount}");
    log.LogInformation($"MessageId={messageId}");
}

В этом примере показана функция C #, которая считывает метаданные сообщения и регистрирует служебную шинусообщение в очереди.

1 голос
/ 04 июня 2019

Вероятная причина, по которой ваше приложение Function работает локально, но не в Azure, связано с тем, как работает план потребления.Приложение функции не будет работать, пока инфраструктура в Azure не обнаружит, что один из наших официальных поддерживаемых триггеров указывает, что ваше приложение функции должно запуститься.Только в этот момент будет создан экземпляр вашего приложения.Вот как мы используем нашу дешевую цену, потому что ваш код запускается только тогда, когда он необходим.

Как отмечали другие в комментариях, и добавьте к отличному ответу rickvdbosch - приложение функций Azure без каких-либо реальных функций Azure.работать на нем не имеет особого смысла.Вы не используете какие-либо функции функций Azure, если в функции Azure не запущен код.Если вы действительно хотите реализовать фоновый поток, работающий всегда, выделенный веб-приложение Azure будет правильным подходом.

С учетом вышесказанного, использование триггеров служебной шины, как рекомендовано rickvdbosch, будет обрабатывать большую часть стандартного шаблона, который вы, вероятно, должны были записать в фоновом потоке, а также позволит вам использовать план потребления функций Azure со всемиценовых преимуществ, которые они приносят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...