AWS Step FunctionsでResultPathで出力値を渡す方法
Step FunctionsでResultPathを使用して、Lambdaの出力値を次のLambdaに渡します。
Lambda(1)(2)
Lambdaはどちらも同じソースです。
exports.handler = async (event) => {
console.log(event)
return {
statusCode: 200
};
};
入力値
以下のJSONを渡します。
{
"data": {"hoge":"fuga"},
"datas": "xxxx"
}
ResultPath($)
ResultPathの設定を「$」にします。
CloudWatch Logs
「実行の開始」をして、Lambda Invoke(2)のログを見ます。
2022-10-02T23:09:31.423Z f503c962-41f2-4f37-87c4-7a41605b1b84 INFO {
ExecutedVersion: '$LATEST',
Payload: { statusCode: 200 }, // ★ Lambda Invoke(1)のreturn値
SdkHttpMetadata: {
AllHttpHeaders: {
'X-Amz-Executed-Version': [Array],
'x-amzn-Remapped-Content-Length': [Array],
Connection: [Array],
'x-amzn-RequestId': [Array],
'Content-Length': [Array],
Date: [Array],
'X-Amzn-Trace-Id': [Array],
'Content-Type': [Array]
},
HttpHeaders: {
Connection: 'keep-alive',
'Content-Length': '18',
'Content-Type': 'application/json',
Date: 'Sun, 02 Oct 2022 23:09:30 GMT',
'X-Amz-Executed-Version': '$LATEST',
'x-amzn-Remapped-Content-Length': '0',
'x-amzn-RequestId': '1a1b122e-02b9-4123-a527-ae825b5c77b6',
'X-Amzn-Trace-Id': 'root=1-633a1a2a-20b4867f5b5faf1d7ba0b23a;sampled=0'
},
HttpStatusCode: 200
},
SdkResponseMetadata: { RequestId: '1a1b122e-02b9-4123-a527-ae825b5c77b6' },
StatusCode: 200
}
ResultPath($.output)
ResultPathの設定を「$.output」に変更します。
CloudWatch Logs
「実行の開始」をして、Lambda Invoke(2)のログを見ます。
{
data: { hoge: 'fuga' },
datas: 'xxxx',
output: {
ExecutedVersion: '$LATEST',
Payload: { statusCode: 200 }, // ★ Lambda Invoke(1)のreturn値
SdkHttpMetadata: {
AllHttpHeaders: [Object],
HttpHeaders: [Object],
HttpStatusCode: 200
},
SdkResponseMetadata: { RequestId: 'f3ca0c28-86eb-4c89-a968-86db39dbbee2' },
StatusCode: 200
}
}
入力値のJSONにoutputキーが追加される動きをするようです。
参考サイト
例: Step Functions ワークフローでパスを使用して状態データを操作する - AWS Step Functions
Step Functions ワークフローで InputPath、ResultPath、および OutputPath を使用して、状態入力と出力 JSON を操作する方法の例を確認します。

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^





コメント