【问题标题】:In an AWS Step Function's Parallel state, if one branch fails is there a way to ensure that the other branches continue until completion?在 AWS Step Functions Parallel 状态下,如果一个分支出现故障,是否有办法确保其他分支继续运行直到完成?
【发布时间】:2021-01-27 05:22:22
【问题描述】:

我有一个具有并行状态的阶梯函数,它有四个分支(A、B、C、D),每个分支都有 3 个 Glue StartJobRun 任务状态。如果分支 A 在第一个任务期间失败,我如何确保其他分支只要成功就继续执行任务?

【问题讨论】:

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


    【解决方案1】:

    正如您在 AWS Step Functions 中提到的,如果一个分支出现故障,其他分支将立即终止并且其结果将被忽略。 Step Functions 将尽最大努力取消任何正在进行的 .sync 任务,并停止在任何分支上执行任何进一步的状态。 如果你想让那些其他分支继续完成,你必须防止任何分支失败。您可以在每个状态上使用 Catch 块并转换为 Succeed(即使它实际上是失败的)。然后,在 Parallel 完成后,添加一个新状态来进行错误处理,以检查哪些分支成功或失败。

    【讨论】:

    • catch 块对我不起作用,Parallel 步骤无论如何都失败了。还有其他想法吗?
    • 请分享您的 ASL。让我们看看你的定义。
    • 谢谢,@pooya 我解决了这个问题。问题是在并行步骤中我有 5 个分支,每个分支有 3 个步骤。在每一步,除了叶子(分支中的最后一步)之外,我都有 catch 块,AWS 不允许这样做。所以我的最后一个函数实际上是错误退出并导致整个步骤失败。在图表中,您看不到它说已取消,但我在日志中发现了错误。所以最后一步(它的 lambda 函数)我确保总是返回成功。再次感谢
    猜你喜欢
    • 2023-02-10
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 2023-03-30
    • 2022-11-17
    • 2019-12-28
    • 1970-01-01
    相关资源
    最近更新 更多