AWS Step Function 出错时将输入作为输出发送
Send Input as Output on error for AWS Step Function
我希望我的状态机即使在早期出现一些状态错误的情况下也能继续执行。我的大多数 lambda 函数输出与输入相同的内容,因此我希望能够将遇到错误的 lambda 的输入作为输出传递到下一个状态。我试过了
{
"DeleteStuff": {
"Type": "Task",
"Resource": "MY_ARN",
"Catch": [ {
"ErrorEquals": ["States.ALL"],
"ResultPath": "$InputPath",
"Next": "FailedState"
}],
"Next": "checkStuff"
}, ...
运气不好。有没有人这样做过,或者谁能提供一些帮助?
谢谢!
所以解决办法就是将ResultPath设置为null。将我的状态机更改为
{
"DeleteStuff": {
"Type": "Task",
"Resource": "MY_ARN",
"Catch": [ {
"ErrorEquals": ["States.ALL"],
"ResultPath": null,
"Next": "FailedState"
}],
"Next": "checkStuff"
}, ...
给了我想要的行为。
如果您只是将新路径添加到结果路径,它会添加到输入中:
{
"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>"
}
我希望我的状态机即使在早期出现一些状态错误的情况下也能继续执行。我的大多数 lambda 函数输出与输入相同的内容,因此我希望能够将遇到错误的 lambda 的输入作为输出传递到下一个状态。我试过了
{
"DeleteStuff": {
"Type": "Task",
"Resource": "MY_ARN",
"Catch": [ {
"ErrorEquals": ["States.ALL"],
"ResultPath": "$InputPath",
"Next": "FailedState"
}],
"Next": "checkStuff"
}, ...
运气不好。有没有人这样做过,或者谁能提供一些帮助?
谢谢!
所以解决办法就是将ResultPath设置为null。将我的状态机更改为
{
"DeleteStuff": {
"Type": "Task",
"Resource": "MY_ARN",
"Catch": [ {
"ErrorEquals": ["States.ALL"],
"ResultPath": null,
"Next": "FailedState"
}],
"Next": "checkStuff"
}, ...
给了我想要的行为。
如果您只是将新路径添加到结果路径,它会添加到输入中:
{
"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>"
}