AWS Step FunctionsでLambdaにInputPathでフィルターして入力値を渡す方法

AWS Step FunctionsでLambdaにInputPathでフィルターして入力値を渡す方法

AWS Step FunctionsでLambdaにペイロードを渡す方法

Lambdaを実行するだけのStep Functionsです。こちらのLambdaに入力値を渡します。

InputPathを使用する

ステートマシン起動時に入力したペイロードをInputPathを使用して渡します。

AWS Step FunctionsでLambdaに入力値を渡す方法

「InputPathで入力をフィルタリング」にチェックを入れます。

「$.data」とします。

Lambda

LambdaではeventをCloudWatch Logsに出力しています。

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

ペイロード

設定タブにペイロードがあります。

AWS Step FunctionsでLambdaに入力値を渡す方法

No payload…関数にペイロードを提供しません。eventに入力値は渡りません。

Enter payload…ペイロードとして使用するJSONオブジェクトを入力します。「amazon states language」構文を使用すると、実行時に状態入力から値を取得することができます。

Use state input as payload…JSONの入力全体を関数のペイロードとして使用します。

「Use state input as payload」を選択してみます。

実行の開始(Use state input as payload)

保存したら「新しい実行」をクリックし、以下の入力値を設定します。

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

AWS Step FunctionsでLambdaに入力値を渡す方法

「実行の開始」をクリックし、CloudWatch Logsを見ます。

AWS Step FunctionsでLambdaに入力値を渡す方法

eventに{“hoge”:”fuga”}が渡ってきています。

datasの値が出力されないのは、InputPathでフィルターしているためdataの値のみとなります。

実行の開始(Enter payload)

InputPathを「$.data」にした状態で、「Enter payload」にします。

$.dataでフィルターされた値は以下になります。

{
  "hoge":"fuga"
}

Enter payloadを以下にします。状態入力の値を取得するには、キー名.$というように「.$」を末尾に付ける必要があります。

{
  "sampleKey1": "sampleValue1",
  "abc.$": "$.hoge"
}

AWS Step FunctionsでLambdaに入力値を渡す方法

保存したら「新しい実行」をクリックし、以下の入力値を設定します。

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

AWS Step FunctionsでLambdaに入力値を渡す方法

「実行の開始」をクリックし、CloudWatch Logsを見ます。

AWS Step FunctionsでLambdaに入力値を渡す方法

eventに{ sampleKey1: ‘sampleValue1’, abc: ‘fuga’ }が渡ってきています。

$.hogeは入力値の値を渡していることが確認できます。

参考サイト

Step Functionsのタスク状態内でのフィルターによる入出力を整理してみた | DevelopersIO

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

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