首页 > 解决方案 > AWS Step Functions 未捕获 States.Runtime 错误

问题描述

下面的 step 函数在 aws 中执行,当缺少必需的参数时,它会取消流程并抛出 States.Runtime 错误。这是在 step 函数的 catch 阶段,但它没有像所述的那样捕获错误。

定义的阶跃函数如下,

{
  "StartAt": "Log Start Step Function",
  "Comment": "Executed with inputs",
  "States": {
    "Log Start Step Function": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:eu-west-1:0000000:function:update",
      "Parameters": {
        "body": {
          "itemID.$": "$.itemID",
          "functionName.$": "$.stepFunctionName ",
          "executionARN.$": "$$.Execution.Id",
          "complete": false,
          "inprogress": true,
          "error": false
        }
      },
      "Catch": [
        {
          "ErrorEquals": [
            "States.Runtime"
          ],
          "ResultPath": "$.taskresult",
          "Next": "Log Failed Module"
        },
        {
          "ErrorEquals": [
            "States.ALL"
          ],
          "ResultPath": "$.taskresult",
          "Next": "Log Failed Module"
        }

      ],
      "ResultPath": "$.taskresult",
      "Next": "Evaluate Module PA1"
    }
  }
}

下面是阶跃函数,在此处输入图像描述

抛出的错误如下, 在此处输入图像描述

运行时错误未执行记录失败的模块。

{
   "ErrorEquals": [
       "States.Runtime"
    ],
    "ResultPath": "$.taskresult",
    "Next": "Log Failed Module"
  },

这是 AWS 错误还是此处完成的配置有问题,或者是否有任何其他方法可以验证 AWS Step Functions 中的参数

标签: amazon-web-serviceserror-handlingruntime-erroraws-step-functionsaws-step-config

解决方案


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

States.Runtime 错误是不可重试的,并且总是会导致执行失败。重试或捕获 States.ALL 不会捕获 States.Runtime 错误


推荐阅读