我有30个要并行运行的胶水作业。如果一项工作失败,则其他工作必须继续。我从逐步函数开始,创建执行流道lambda函数的状态机,该函数又根据参数(胶水作业的名称)触发胶水作业。对于一项工作,实现了相当数量的步进功能逻辑(重试,错误处理等)
是否可以从其他状态机执行状态机?这样,我可以拥有30个执行其他状态机的并行任务。如果您有任何建议,请随时分享。
答案 0 :(得分:1)
AWS建议将SNS用于扇出架构,以从单个S3事件运行并行作业,因为如果两个Lambda尝试使用同一S3事件,则会出现重叠错误。
您基本上将S3事件发送给SNS并订阅了30个lambda,以便它们在发布时都从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/
还有另一个很好的示例