作 ▸
AWS Step Functionsから呼び出されるLambdaで実行IDを受け取る
コンテキストには $$
でアクセスできる
実行IDは $$.Execution.Id
にあるので、そこから拾ってLambdaのペイロードにセットしてやればOK。
{
"Comment": "オスのひよこ",
"StartAt": "Lambda Invoke",
"States": {
"Lambda Invoke": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"OutputPath": "$.Payload",
"Parameters": {
"FunctionName": "MyPiyopiyoFunction",
"Payload": {
"executionId.$": "$$.Execution.Id",
"params.$": "$"
}
},
"End": true
}
}
}
ここでは、パラメータで受け取った実行IDとそれ以外を合わせて出力してみた。
exports.handler = async (event) => {
return {
executionId: event.executionId,
...event.params,
smile: '(^-^)'
}
};
これで以下の通りに実行される。
{
"hoge": "piyo"
}
{
"executionId": "arn:aws:states:ap-northeast-1:999999999999:execution:MyPiyopiyoStateMachine:00000000-0000-0000-0000-000000000000",
"hoge": "piyo",
"smile": "(^-^)"
}