Может ли функция Azure, использующая триггер привязки EventGrid, вернуть значение 202, прежде чем продолжить асинхронность?

#php #azure #azure-functions #serverless

#php #azure #azure-функции #без сервера

Вопрос:

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

Для этого используется пользовательская функция-обработчик, описанная здесь .

Я хочу запустить задание PHP, которое может занять более 30 секунд (до 3-4 минут).

введите описание изображения здесь

Ответ №1:

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

Вы даже можете настроить сетку событий для отправки события в очередь напрямую.

ОБНОВЛЕНИЕ: другой вариант — упаковать PHP-скрипт в контейнер и запустить его с использованием экземпляров контейнера Azure. Вы даже можете использовать приложения Azure Logic и соединитель экземпляра контейнера Azure для запуска контейнера, и все это без написания какого-либо кода.

Комментарии:

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

2. Обновил мой ответ альтернативным. Надеюсь, это поможет.