Итак, я работаю над государственной машиной. Он может иметь до 20 или 30 запусков одновременно с разными параметрами.

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

Я знаю, как отправить «Успех задачи» для действия. Но как я могу убедиться, что оно отправлено на правильное исполнение?

0
ElFitz 4 Апр 2017 в 21:12

2 ответа

Лучший ответ

Здесь было бы полезно использовать службу pub / sub, такую как mqtt.

  1. Создайте UUID в лямбде, который порождает новое выполнение.
  2. Передайте UUID новому исполнению и верните его рабочему деятельности.
  3. Новое выполнение записывает UUID и приводит в очередь, как только это будет сделано.
  4. Рабочий активности читает из очереди и использует UUID, чтобы найти правильное сообщение.
1
Murali Allada 13 Апр 2017 в 16:13

В зависимости от дизайна вашего конечного автомата вы также можете передавать taskToken текущего действия в качестве входного параметра, когда ваше действие создает новое выполнение StepFunction. Затем последнее состояние в суб-выполнении может вызвать Task Success для состояния в родительском выполнении, используя переданный taskToken, возвращая любые данные результата в качестве результатов для этого состояния. (Не забывайте, что последнее состояние также должно было бы вызывать Задачу Успех для себя.)

0
ivo 20 Авг 2017 в 14:45