Приложение-функция Azure без функции и с запущенными фоновыми потоками

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

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

Обновлять

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

Приложение "Функции Azure" без функции? ? Пожалуйста, уточните.

Sean Feldman 01.06.2019 03:09

Функция отсутствует, экземпляр класса создается и работает в фоновом режиме.

Pingpong 01.06.2019 03:13

Тогда вам нужно смотреть на веб-задания, а не на функции. Функции запускаются и не работают в фоновом режиме.

Sean Feldman 01.06.2019 03:17

Я знаю, что функции запущены. Приложение My Function (без функций) работает локально, но не в Azure.

Pingpong 01.06.2019 03:31

Приложение-функция без функции?

Sajeetharan 01.06.2019 03:54
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
5
497
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

More than just event-driven serverless compute

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

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

  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}");
}

This example shows a C# function that reads message metadata and logs a Service Bus queue message.

Я искал, почему он не работает. ТАК допускает только один ответ, я хотел бы также назначить этот замечательный комментарий ответом.

Pingpong 04.06.2019 02:07
Ответ принят как подходящий

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

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

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

Это то, что я нахожу в отношении проблемы. Я искал, почему он не работает.

Pingpong 04.06.2019 02:05

Другие вопросы по теме