【发布时间】:2018-11-21 02:58:37
【问题描述】:
当前 Lambda 函数失败时,如何将前一个 Lambda 函数的输出传递给下一个 Lambda 函数?
我有三个 Lambda 函数 L01、L02 和 L03。
以下是我的阶梯函数定义:
{
"Comment": "Recovery Plan",
"StartAt": "L01",
"States": {
"L01": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:XXXXX:function:Lambda01",
"Next": "L02"
},
"L02": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:XXXXX:function:lambda02",
"Retry": [
{
"ErrorEquals": ["States.TaskFailed"],
"IntervalSeconds": 1,
"MaxAttempts": 3,
"BackoffRate": 2
}
],
"Catch": [ {
"ErrorEquals": [ "States.TaskFailed" ],
"ResultPath":"$",
"Next": "L03"
} ],
"Next": "L03"
},
"L03": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:XXXXX:function:lambda03",
"End": true
}
}
}
以下是 Lambda 函数的输入和输出:
L01 的输出是
{
"k01": "v01"
}
L02 的输入来自 L01,即
{
"k01": "v01"
}
输出到 L02 是
{
"k01": "v01",
"k02": "v02"
}
L02 的输入来自 L01,即
{
"k01": "v01",
"k02": "v02"
}
L03 的输出是
{
"k01": "v01",
"k02": "v02",
"k03": "v03"
}
我的 Lambda 函数 L02 失败。我也想在失败的情况下执行状态机。我想在 L02 失败时将 L02 函数的输入传递给 L03 函数的输入,并想添加一个键为error,值为custom error。
有人可以帮助我吗?
【问题讨论】:
标签: amazon-web-services aws-step-functions