Параллельное выполнение заданий AWS Glue - PullRequest
1 голос
/ 05 июня 2019

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

Есть ли способ запустить конечный автомат из другого конечного автомата? Таким образом, у меня может быть 30 параллельных задач, которые выполняют другие конечные автоматы. Если у вас есть какие-либо предложения, пожалуйста, не стесняйтесь поделиться.

1 Ответ

1 голос
/ 05 июня 2019

AWS рекомендует использовать SNS для архитектуры разветвления для запуска параллельных заданий из одного события S3, поскольку вы получаете ошибку перекрытия, если две лямбды пытаются использовать одно и то же событие S3.

Вы в основном отправляете S3на SNS и подпишитесь на 30 лямбд, чтобы все они запускались из уведомления SNS (содержащего сведения о событии S3) при его публикации.

  1. Создание темы
  2. Обновление политики темычтобы разрешить уведомления о событиях из корзины S3
  3. Сконфигурировать корзину S3 для отправки уведомлений о событиях в тему SNS
  4. Создать параллельные лямбда-функции, по одной для каждой работы
  5. ИзменитьЛямбда-функции обрабатывают сообщения SNS уведомлений о событиях S3 вместо самого события S3

https://aws.amazon.com/blogs/compute/fanout-s3-event-notifications-to-multiple-endpoints/

Существует также еще один хороший пример с шаблоном CloudFormation https://aws.amazon.com/blogs/compute/messaging-fanout-pattern-for-serverless-architectures-using-amazon-sns/

...