【问题标题】:Working around AWS Step Function Map concurrency limit解决 AWS Step Function Map 并发限制
【发布时间】:2020-12-18 13:47:38
【问题描述】:

我在 AWS Step Function 中有一个 Map 任务,它并行执行 100-200 个 lambda,每个运行几分钟,然后收集结果。但是,我遇到了限制,在一段时间内并非所有 lambdas 都启动了。 relevant AWS documentation 表示您可能会遇到超过 40 多个项目的限制,我相信这是我遇到的问题。

有没有人有解决这个并发限制的经验?我可以嵌套 Maps,还是可以将我的任务存储到多个并行运行的 Maps 中?

【问题讨论】:

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


    【解决方案1】:

    在您的地图状态中使用嵌套状态机,这样您就可以让大约 40 个子状态机并行执行。然后在每个子状态机内部使用映射状态并行处理约 40 个项目。 通过这种方式,您可以并行处理约 1600 个项目。

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

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

    【讨论】:

    • 谢谢,最终通过分桶作业和并行使用多个地图来完成类似的操作。
    • 我遇到了这个问题,而是将我的大型地图任务变成了子同步快速工作流。我希望 AWS 包含一个选项来自动处理这个问题
    【解决方案2】:

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

    【讨论】:

    • 大概每个Map 都有相同的迭代器?如果是这样,您是如何管理的?我收到错误Every state can only be used in one graph
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多