步骤函数Step即使在lambda引发异常时也不会失败



我有一个AWS步骤功能工作流,按顺序分为两个步骤。在每一步中,我都调用一个lambda。

我的第一个lambda是在进行一些处理后抛出异常。但总的来说,我的步骤功能工作流正在完全执行,并且正在通过。

我在阶跃函数配置中遗漏了什么吗?理想情况下,我希望我的步骤函数在任何步骤失败时(即该步骤的lambda失败(立即停止异常。

我的步骤功能配置如下:

{
"StartAt": "firstStep",
"States": {
"firstStep": {
"Next": "secondStep",
"Retry": [
{
"ErrorEquals": [
"States.ALL"
],
"MaxAttempts": 1,
"BackoffRate": 1
}
],
"Type": "Task",
"OutputPath": "$",
"ResultPath": "$.Result",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "<some function arn>",
"Payload": {},
"InvocationType": "Event"
}
},
"secondStep": {
"End": true,
"Retry": [
{
"ErrorEquals": [
"States.ALL"
],
"MaxAttempts": 1,
"BackoffRate": 1
}
],
"Type": "Task",
"OutputPath": "$",
"ResultPath": "$.Result",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "<some function arn>",
"Payload": {},
"InvocationType": "Event"
}
}
},
"TimeoutSeconds": 10800
}

如有任何帮助或指导,我们将不胜感激。

您当前的定义告诉Step函数重试Lambdas一次。如果希望立即失败,请设置MaxAttempts: 0或完全删除(可选(Retry块。

文档:"默认情况下,当状态报告错误时,AWS步骤函数会导致执行完全失败">

同样值得注意的是,如果你在Lambda中捕捉错误,Lambda不会报告错误。

最新更新