#azure #azure-functions #azure-queues #azure-eventgrid #azure-durable-functions
#azure #azure-функции #azure-очереди #azure-eventgrid #azure-durable-функции
Вопрос:
Пример использования
Я хотел бы создать рабочий процесс для определенного процесса и хочу использовать функции Azure для достижения этой цели.
Все эти функции должны быть «связаны», и процесс не может продолжаться, если одна функция выходит из строя. Мне нужно получить обновленный статус во время процесса, чтобы интерфейсная часть моего приложения могла информировать пользователя о процессе. Я также хочу процесс CI, который позволяет мне запускать каждую функцию по отдельности.
Лучшим решением было бы иметь одну общедоступную функцию и несколько «частных» функций, недоступных публично (запускаемых только другими функциями Azure)
Вопрос
Сначала я думал об использовании надежных функций, но, похоже, это не адаптировано для моего варианта использования, поскольку вызывать функции Azure из оркестратора непросто.
Сейчас я думаю о сетке событий. Это хороший выбор для вас? Как обрабатывать глобальный статус, который я могу получить из интерфейсной части приложения?
Заранее спасибо!
J.
Комментарии:
1. «нелегко вызывать функции Azure из orchestrator», Пожалуйста, уточните, поскольку основная задача orchestrator — вызывать другие функции.
2. Я предполагаю, что это возможно путем запуска HTTP-события в orchestrator, но я чувствовал, что это не лучшее решение (и я не хочу раскрывать другие мои функции Azure)
3. Существует множество способов защитить ваши функции и предотвратить прямой доступ
4. Итак, вы бы порекомендовали придерживаться надежных функций с отдельными функциями Azure, запускаемыми orchestrator?
5. Вы должны покопаться в документации и попытаться понять, что такое
activity
функции
Ответ №1:
Для меня ваша ситуация звучит как очень подходящая для долговременных функций, поскольку вы можете запрограммировать свой рабочий процесс в функции orchestrator и обрабатывать повторные попытки и исключения по своему усмотрению. Обратите внимание, что orchestrator
функция вызывает activity
функции, которые находятся в том же функциональном приложении. В долговременных функциях нет связи между функциональными приложениями (если вы не выполняете какое-либо «творческое» кодирование для вызова новой оркестровки из действия).
Вы также можете использовать статус пользовательской оркестровки для предоставления клиенту обратной связи о состоянии рабочего процесса.
Я бы определенно посоветовал сохранить небольшие оркестровки (не слишком много функций активности), чтобы оркестровка была понятной и не поддавалась проверке. Еще несколько советов о группировании функций в функциональном приложении в этом блоге.
Наконец, если у вас есть отдельные процессы в вашем рабочем процессе, которые требуют отдельного масштабирования или развертывания, вы также можете подумать об объединении EventGrid и долговременных функций. Например. первое функциональное приложение выполняет начальную часть потока, и одно из действий запускает событие EventGrid. Второе функциональное приложение может быть запущено этим событием и выполняет остальную часть рабочего процесса.