繁体   English   中英

解决 AWS Step Function Map 并发限制

[英]Working around AWS Step Function Map concurrency limit

我在 AWS Step Function 中有一个Map任务,它并行执行 100-200 个 lambda,每个运行几分钟,然后收集结果。 但是,我遇到了节流问题,在一段时间内并非所有 lambda 都已启动。 相关的 AWS 文档说您可能会遇到超过 40 个项目的限制,我相信我正在遇到这种情况。

有没有人有解决此并发限制的经验? 我可以嵌套地图吗,或者我可以将我的任务分到几个并行运行的地图中吗?

在您的 map state 中使用嵌套的 state 机器,这样您就可以让 ~40 台子 Z9ED39E2EA9315825B6A98 机器并行执行。 然后在每个子 state 机器内部使用 map state 并行处理约 40 个项目。 通过这种方式,您可以并行处理约 1600 个项目。

但在达到之前,您将达到 AWS Step Functions Quotas:

https://docs.aws.amazon.com/step-functions/latest/dg/limits.html

我最终通过在Parallel中创建 10 个Map任务的副本来解决这 40 个项目的限制,并将任务信息存储起来以在这 10 个副本之间拆分任务。 这意味着我现在可以在遇到限制问题之前运行约 400 个任务。 我的 state 机器看起来像这样:

状态机

AWS 现在为此提供了一个直接的解决方案,称为“分布式 map 状态”,在 re:invent 2022 https 上宣布://docs.aws.amazon.com/step-functions/latest/dg/concepts-asl-use-map-状态分布式.html

它允许您执行 10,000 个并发 map state 任务。 在引擎盖下,它将它们作为子步骤 function 工作流运行,可以将其指定为作为标准或快速工作流运行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM