【发布时间】:2022-01-17 14:45:06
【问题描述】:
我有一个在最后一步失败的阶梯函数,这是一个超时的 lambda 函数。我只能运行 lambda,但有没有办法运行 step 函数的最后一步(如重试该特定步骤)。
我不想重新运行整个事情,因为其他一切都是正确的,并且依赖于每日数据。 谢谢
【问题讨论】:
标签: amazon-web-services aws-lambda aws-step-functions
我有一个在最后一步失败的阶梯函数,这是一个超时的 lambda 函数。我只能运行 lambda,但有没有办法运行 step 函数的最后一步(如重试该特定步骤)。
我不想重新运行整个事情,因为其他一切都是正确的,并且依赖于每日数据。 谢谢
【问题讨论】:
标签: amazon-web-services aws-lambda aws-step-functions
是的,您可以retry 一个单独的步进函数任务。
此示例使用退避重试 lambda 任务 2 次,包括在 lambda 超时错误之后:
{
"StartAt": "LambdaTask",
"States": {
"LambdaTask": {
"Next": "Success",
"Retry": [
{
"ErrorEquals": ["States.ALL"], // can also narrow this to specific errors - a timeout error is "Lambda.Unknown"
"MaxAttempts": 2, // How many times to retry
"IntervalSeconds": 2, // How many seconds to wait initially before retrying.
"BackoffRate": 3 // Multiplication for how much longer the wait interval gets on every retry.
}
],
"Catch": [{ "ErrorEquals": ["States.ALL"],"Next": "Fail"}
],
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "arn:aws:lambda:us-east-1:XXXXXXXXXX",
"Payload.$": "$"
}
},
"Success": { "Type": "Succeed" },
"Fail": { "Type": "Fail" }
}
}
【讨论】: