即使在早期出现状态错误的情况下,我也希望我的状态机继续执行。我的大多数lambda函数都输出与输入相同的东西,因此我希望能够将遇到错误的lambda输入传递给下一个状态。我试过了
{
"DeleteStuff": {
"Type": "Task",
"Resource": "MY_ARN",
"Catch": [ {
"ErrorEquals": ["States.ALL"],
"ResultPath": "$InputPath",
"Next": "FailedState"
}],
"Next": "checkStuff"
}, ...
没有任何运气。有没有人这样做,或者任何人都可以提供一些帮助?
谢谢!
答案 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>"
}