解决 AWS Step Function Map 并发限制
Working around AWS Step Function Map concurrency limit
我在 AWS Step Function 中有一个 Map
任务,它并行执行 100-200 个 lambda,每个 运行ning 几分钟,然后收集结果。但是,我 运行 正在限制一段时间内并非所有 lambda 都已启动的情况。 relevant AWS documentation 说你可能会遇到超过 40 个项目的限制,我相信我正在 运行 中。
有没有人有解决此并发限制的经验?我可以嵌套地图,还是可以将我的任务分到多个地图中 运行 并行?
在您的地图状态中使用嵌套状态机,因此您可以并行执行约 40 个子状态机。然后在每个子状态机内部使用映射状态并行处理 ~40 个项目。
这样您就可以并行处理 ~1600 个项目。
但在此之前,您将达到 AWS Step Functions 配额:
https://docs.aws.amazon.com/step-functions/latest/dg/limits.html
我最终通过在 Parallel
中创建 Map
任务的 10 个副本来解决这 40 个项目的限制,并将任务信息分桶以在这 10 个副本之间拆分任务。这意味着我现在可以在 运行 解决节流问题之前 运行 ~400 个任务。我的状态机看起来像这样:
我在 AWS Step Function 中有一个 Map
任务,它并行执行 100-200 个 lambda,每个 运行ning 几分钟,然后收集结果。但是,我 运行 正在限制一段时间内并非所有 lambda 都已启动的情况。 relevant AWS documentation 说你可能会遇到超过 40 个项目的限制,我相信我正在 运行 中。
有没有人有解决此并发限制的经验?我可以嵌套地图,还是可以将我的任务分到多个地图中 运行 并行?
在您的地图状态中使用嵌套状态机,因此您可以并行执行约 40 个子状态机。然后在每个子状态机内部使用映射状态并行处理 ~40 个项目。 这样您就可以并行处理 ~1600 个项目。
但在此之前,您将达到 AWS Step Functions 配额:
https://docs.aws.amazon.com/step-functions/latest/dg/limits.html
我最终通过在 Parallel
中创建 Map
任务的 10 个副本来解决这 40 个项目的限制,并将任务信息分桶以在这 10 个副本之间拆分任务。这意味着我现在可以在 运行 解决节流问题之前 运行 ~400 个任务。我的状态机看起来像这样: