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
、、および OutputPath Step Functions ワークフローJSONを使用して状態の入力 InputPath ResultPathと出力を操作する方法の例を参照してください。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント