更新:截至 2019 年 5 月 23 日,此答案已过时,因为 AWS 引入了一种在 step 函数中访问当前步骤的方法,请参阅接受的答案。
看起来你是对的,当前步骤不会通过context 变量公开。
因此,可以让您识别状态机当前处于哪个阶段的信息应该从上一步(即从前一个 lambda)传递。这似乎是最正确的选择。
或者,作为一种解决方法,您可以尝试在调用 lambda 函数之前插入 pass 状态,以传递可以帮助您识别当前阶段的 id。
假设您的状态机中有两个步骤:
"Step1Test": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxx:function:step1test",
"Next": "Step2Test"
},
"Step2Test": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxx:function:step2test",
"End": true
}
您可以通过以下方式为您的 lambda 函数提供通过 event.stepId 传递的当前步骤 ID
"Step1TestEnter": {
"Type": "Pass",
"Next": "Step1Test",
"Result": "Step1Test",
"ResultPath": "$.stepId"
},
"Step1Test": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxx:function:step1test",
"Next": "Step2TestEnter"
},
"Step2TestEnter": {
"Type": "Pass",
"Next": "Step2Test",
"Result": "Step2Test",
"ResultPath": "$.stepId"
},
"Step2Test": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:xxxxxxxxxx:function:step2test",
"End": true
}