[英]AWS Step Functions invoke Dynamic Parallel Step Functions
我正在使用步骤 function 工作流程解决问题。
问题是这样的,我有 10 个 AWS Batch 作业的工作流。
前 3 个作业按顺序运行,4-7 个作业是动态步骤,即它们需要按照指定的不同参数运行多次。
并且对于每个 4-5-6-7 工作流,根据参数数量,会多次执行 8-9-10 作业。
看起来 Map 最适合这里,但如果 map state 中的任何作业失败,则 4-5-6-7 整个步骤都会失败。 我不希望一次执行影响另一次执行。
方法:我设计了 3 个阶梯函数。 第一步 function 运行 1-3 个作业,最后一步调用 lambda function 提交多次执行的 4-5-6-7 个作业。 对于每个 4-5-6-7 执行,另一个 lambda 被触发以提交 8-9-10 作业的多次执行。
我通过 lambda 函数手动连接步进函数。
这是正确的方法还是有更好的方法?
我会建议更多元素,以使您的解决方案更适合生产。
首先,我建议您消除 Lambda function 调用,并为嵌套工作流使用“运行作业”( .sync:2 )服务集成。 我昨天刚做了一个Twitch 插曲。
其次,如果您想在 Map State 内部执行失败后继续,请确保您正在实施 Catchers(以及可选的 Retriers)。 我在上周二做了一个Twitch 插曲,上面链接的第一个视频中讨论了错误处理。
因此,对于您的具体情况,我建议您:
有关 Step Functions 和 Lambda 函数中的并行性的更多信息,请参阅此 Twitch 插曲。
上述所有代码示例都可在GitHub 上的这个 repo 中找到。
我代表我的雇主亚马逊做出了贡献。 我的贡献是在 MIT 许可下获得许可的。 有关更详细的说明,请参见此处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.