AWS Step FunctionsでResultPathで出力値を渡す方法

AWS Step FunctionsでResultPathで出力値を渡す方法

Step FunctionsでResultPathを使用して、Lambdaの出力値を次のLambdaに渡します。

AWS Step FunctionsでResultPathで出力値を渡す方法

Lambda(1)(2)

Lambdaはどちらも同じソースです。

exports.handler = async (event) => {
    console.log(event)
    return {
        statusCode: 200
    };
};

入力値

以下のJSONを渡します。

{
  "data": {"hoge":"fuga"},
  "datas": "xxxx"
}

ResultPath($)

ResultPathの設定を「$」にします。

AWS Step Functionsで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」に変更します。

AWS Step FunctionsでResultPathで出力値を渡す方法

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キーが追加される動きをするようです。

参考サイト

InputPath、ResultPath、OutputPathおよび例 - AWS Step Functions
ステートまたはステート以外のステートには、 、、、 InputPath などの入力処理フィールドと出力処理フィールドを含めることができます OutputPath 。 ResultPath さらに、 ResultPath および州はこのフィー...

コメント

タイトルとURLをコピーしました