У меня есть лямбда-функция, которая запускается FIFO SQS. Мне нужен только один экземпляр функции. Функция вызывает конечный автомат, и для завершения конечного автомата требуется больше времени, чем для лямбда-функции. Я хочу, чтобы лямбда-функция завершалась только после того, как пошаговая функция завершила свое выполнение.
Пошаговые функции AWS вызываются только асинхронно. Конечный автомат может работать до 1 года, поэтому синхронный вызов невозможен. В зависимости от вашего рабочего процесса вы можете найти Деятельность полезным.
Activities are an AWS Step Functions feature that enables you to have a task in your state machine where the work is performed by a worker that can be hosted on Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), mobile devices—basically anywhere.
Если вы ожидаете, что ваш конечный автомат завершится в разумное время, вы можете заставить свою Lambda (или что-либо еще, что запускает выполнение конечного автомата) ждать ответа.
Это общепринятый шаблон, но он имеет довольно много движущихся частей:
AWS Express Step Functions теперь поддерживает синхронные вызовы.
Имейте в виду, что функции Express Step предназначены для рабочих нагрузок, которые требуют более высокой частоты событий и имеют более короткую продолжительность. Кроме того, имейте в виду, что вам будет выставляться счет в зависимости от количества запросов и продолжительности рабочего процесса, как и лямбда.