AWS синхронный / асинхронный поток - PullRequest
0 голосов
/ 19 марта 2019

В моей среде AWS есть три шага:

  • Шаг 1 является синхронным
  • Шаг 2 выполняется после шага 1и является асинхронным, который принимает входные данные с шага 1, кодирует аудиофайл и помещает кодированный файл на S3.
  • Шаг 3 должен выполняться после того, как шаг 2 принимает входные данные как с шага 1, так и кодированный файлна S3, сгенерированном на шаге 2.

Как мне это реализовать?Я хочу использовать пошаговые функции, но у меня есть асинхронный шаг 2, который я не знаю, как с ним работать.

1 Ответ

0 голосов
/ 20 марта 2019

Этого можно добиться, внедрив Задачу Деятельности .

Работником активности может быть приложение, работающее на экземпляре Amazon EC2, функция AWS Lambda, мобильное устройство:любое приложение, которое может установить соединение HTTP, размещенное где угодно.Когда пошаговые функции достигают состояния задачи действия, рабочий процесс ожидает, когда работник действия опрашивает задачу.Рабочий действия опрашивает пошаговые функции, используя GetActivityTask и отправляя ARN для связанной операции.GetActivityTask возвращает ответ, включающий ввод (строка ввода JSON для задачи) и taskToken (уникальный идентификатор для задачи).После того, как рабочий завершит свою работу, он может предоставить отчет об успехе или неудаче с помощью SendTaskSuccess или SendTaskFailure.Эти два вызова используют taskToken, предоставленный GetActivityTask, чтобы связать результат с этой задачей.

Шаг 3 должен быть заданием активности.Рабочий, вызванный на шаге 2, будет опрашивать активность, созданную на шаге 3, и после завершения своей работы он сообщит об активности шага 3, используя SendTaskSuccess или SendTaskFailure , в зависимости от выходных данных работника.

...