【问题标题】:AWS Step Function - Rerun one Step onlyAWS Step Function - 仅重新运行一个步骤
【发布时间】:2022-01-17 14:45:06
【问题描述】:

我有一个在最后一步失败的阶梯函数,这是一个超时的 lambda 函数。我只能运行 lambda,但有没有办法运行 step 函数的最后一步(如重试该特定步骤)。

我不想重新运行整个事情,因为其他一切都是正确的,并且依赖于每日数据。 谢谢

【问题讨论】:

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


    【解决方案1】:

    是的,您可以retry 一个单独的步进函数任务。

    此示例使用退避重试 lambda 任务 2 次,包括在 lambda 超时错误之后:

    {
      "StartAt": "LambdaTask",
      "States": {
        "LambdaTask": {
          "Next": "Success",
          "Retry": [
            {
              "ErrorEquals": ["States.ALL"],  // can also narrow this to specific errors - a timeout error is "Lambda.Unknown"
              "MaxAttempts": 2, // How many times to retry
              "IntervalSeconds": 2,  // How many seconds to wait initially before retrying.
              "BackoffRate": 3 // Multiplication for how much longer the wait interval gets on every retry.
            }
          ],
          "Catch": [{ "ErrorEquals": ["States.ALL"],"Next": "Fail"}
          ],
          "Type": "Task",
          "Resource": "arn:aws:states:::lambda:invoke",
          "Parameters": {
            "FunctionName": "arn:aws:lambda:us-east-1:XXXXXXXXXX",
            "Payload.$": "$"
          }
        },
        "Success": { "Type": "Succeed" },
        "Fail": { "Type": "Fail" }
      }
    }
    

    【讨论】:

    • 谢谢!如果它是每天安排的,我可以只将它用于失败的那个而不是更改所有的定义吗?
    • 很高兴为您提供帮助。您可以将“重试”添加到任何任务、映射或并行状态。这意味着如果任务导致匹配错误,它将被重试。如果一个任务的重试都失败了,那么你就不走运了,整个执行都失败了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多