Использование AWS Lambda для периодического мониторинга состояния удаленного ресурса - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно реализовать следующую функцию в бэкэнде в AWS: - Конечная точка API, которая позволяет пользователю запускать определенный длительный «процесс» в удаленной системе - статус процесса в этой удаленной системе должен периодически контролироваться (каждыйнесколько-несколько секунд) для статуса и когда статус == завершен, инициировать действие (удаленная система не поддерживает отправку / запуск уведомлений или обратных вызовов)

Мы используем в основном лямбда-функции, поэтому я подумываю о приближении к немуследующим образом: - моя конечная точка, которая запускается пользователем, будет вызывать удаленную систему для запуска процесса, сохранять записи во внутренней БД и генерировать сообщение в SQS (с задержкой доставки X секунд) - будет вторая лямбдаэто будет читать сообщения из SQS и проверять состояние процесса в этой удаленной системе.Когда статус == завершен, инициируйте действие, когда статус! = Завершен, сгенерируйте еще одно сообщение для SQS, которое снова получит такую ​​же лямбду после X секунд задержки и повторите проверку и т. Д.

I 'Мне интересно, есть ли лучшее решение / инструменты для реализации такого рода шаблонов мониторинга / уведомлений в AWS, так как я не очень хорошо знаком со всеми сервисами, которые предоставляет AWS.

Кто-нибудь прокомментирует этот подход и, возможно, предложит альтернативу, если он есть?

1 Ответ

1 голос
/ 10 июля 2019

Взгляните на Функции шага AWS , которые, как мне кажется, лучше всего подходят для вашего случая использования.

Все, что вам нужно сделать, это вместо того, чтобы генерировать сообщение SQS, инициировать выполнение StateMachine в StepFunctions.

В следующем руководстве объясняется цикл итератора со счетчиком. Но вы можете использовать ту же логику, чтобы проверить состояние и продолжать цикл до состояния == завершено

https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-create-iterate-pattern-section.html

Еще один полезный ресурс, который, я думаю, очень близок к вашему варианту использования. https://docs.aws.amazon.com/step-functions/latest/dg/sample-project-job-poller.html

...