【问题标题】:Retry and Catch on AWS Step Function task重试并捕获 AWS Step Function 任务
【发布时间】:2020-11-20 22:01:32
【问题描述】:

对于 StepFunctions,我们可以让 RetryCatch 一起处理用尽的情况吗?

这是我的用例

  1. 作业失败
  2. 重试
  3. 重试已用尽,转到 Catch
  4. 捕获所有错误,移至下一个作业,并更新数据库表以标记此作业失败(另一个任务)
  5. 或者在第一次运行或重试成功后,转到下一个作业
    "ExecuteMyJob": {
            "Type": "Task",
            "Resource": "arn:aws:states:::glue:startJobRun.sync",
            "Parameters": {
                "JobName.$": "$.jobName",
                "Arguments.$": "$.jobArguments"
            },
            "Retry" : [{
                "ErrorEquals": [ "States.TaskFailed", "States.Runtime" ],
                "MaxAttempts": 3,
                "IntervalSeconds": 60,
                "BackoffRate": 2
            }],
            "Catch": [{
                "ErrorEquals": [ "States.ALL" ],
                "Next": "MarkJobFailOnDbTable"
            }],
            "Next": "NextJobOnPreviousSuccess"
        }

【问题讨论】:

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


    【解决方案1】:

    Step Functions 可让您同时拥有 RetryCatch

    https://docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html

    该链接中的复杂重试方案示例与您的示例类似:

    "X": {
       "Type": "Task",
       "Resource": "arn:aws:states:us-east-1:123456789012:task:X",
       "Next": "Y",
       "Retry": [ {
          "ErrorEquals": [ "ErrorA", "ErrorB" ],
          "IntervalSeconds": 1,
          "BackoffRate": 2.0,
          "MaxAttempts": 2
       }, {
          "ErrorEquals": [ "ErrorC" ],
          "IntervalSeconds": 5
       } ],
       "Catch": [ {
          "ErrorEquals": [ "States.ALL" ],
          "Next": "Z"
       } ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 1970-01-01
      相关资源
      最近更新 更多