并行运行AWS Glue作业

时间:2019-06-05 14:02:11

标签: amazon-web-services aws-lambda aws-glue aws-step-functions

我有30个要并行运行的胶水作业。如果一项工作失败,则其他工作必须继续。我从逐步函数开始,创建执行流道lambda函数的状态机,该函数又根据参数(胶水作业的名称)触发胶水作业。对于一项工作,实现了相当数量的步进功能逻辑(重试,错误处理等)

是否可以从其他状态机执行状态机?这样,我可以拥有30个执行其他状态机的并行任务。如果您有任何建议,请随时分享。

1 个答案:

答案 0 :(得分:1)

AWS建议将SNS用于扇出架构,以从单个S3事件运行并行作业,因为如果两个Lambda尝试使用同一S3事件,则会出现重叠错误。

您基本上将S3事件发送给SNS并订阅了30个lambda,以便它们在发布时都从SNS通知(包含S3事件的详细信息)中触发。

  1. 创建主题
  2. 更新主题策略以允许来自S3存储桶的事件通知
  3. 配置S3存储桶以将事件通知发送到SNS主题
  4. 创建并行的Lambda函数,每个任务一个
  5. 修改Lambda函数以处理S3事件通知的SNS消息,而不是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/

还有另一个很好的示例