AWS Step功能出错时发送输入为输出

时间:2018-02-27 21:24:48

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

即使在早期出现状态错误的情况下,我也希望我的状态机继续执行。我的大多数lambda函数都输出与输入相同的东西,因此我希望能够将遇到错误的lambda输入传递给下一个状态。我试过了

{
    "DeleteStuff": {
      "Type": "Task",
      "Resource": "MY_ARN",
      "Catch": [ {
        "ErrorEquals": ["States.ALL"],
        "ResultPath": "$InputPath",
        "Next": "FailedState"
      }],
      "Next": "checkStuff"
    }, ...
没有任何运气。有没有人这样做,或者任何人都可以提供一些帮助?

谢谢!

2 个答案:

答案 0 :(得分:1)

所以解决方案是将ResultPath设置为null。将状态机更改为

"_source": {
  "includes": [ "victim.ip"]
}

给了我理想的行为。

答案 1 :(得分:1)

如果您只是向结果路径添加新路径,则会将其添加到输入:

{
    "ErrorEquals": ["States.ALL"],
    "ResultPath": "$.error",
    "Next": "Catch All Error Handler"
}

所以,如果您的输入是:

{
    "data_a" : "aaa",
    "data_b" : "bbb"
}

输出将是:

{
    "data_a" : "aaa",
    "data_b" : "bbb",
    "error" : "<error description>"
}