AWS Step FunctionsでLambdaにInputPathでフィルターして入力値を渡す方法
Lambdaを実行するだけのStep Functionsです。こちらのLambdaに入力値を渡します。
InputPathを使用する
ステートマシン起動時に入力したペイロードをInputPathを使用して渡します。
「InputPathで入力をフィルタリング」にチェックを入れます。
「$.data」とします。
Lambda
LambdaではeventをCloudWatch Logsに出力しています。
exports.handler = async (event) => {
console.log(event)
return {
statusCode: 200
};
};
ペイロード
設定タブにペイロードがあります。
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"
}
「実行の開始」をクリックし、CloudWatch Logsを見ます。
eventに{“hoge”:”fuga”}が渡ってきています。
datasの値が出力されないのは、InputPathでフィルターしているためdataの値のみとなります。
実行の開始(Enter payload)
InputPathを「$.data」にした状態で、「Enter payload」にします。
$.dataでフィルターされた値は以下になります。
{
"hoge":"fuga"
}
Enter payloadを以下にします。状態入力の値を取得するには、キー名.$というように「.$」を末尾に付ける必要があります。
{
"sampleKey1": "sampleValue1",
"abc.$": "$.hoge"
}
保存したら「新しい実行」をクリックし、以下の入力値を設定します。
{
"data": {"hoge":"fuga"},
"datas": "xxxx"
}
「実行の開始」をクリックし、CloudWatch Logsを見ます。
eventに{ sampleKey1: ‘sampleValue1’, abc: ‘fuga’ }が渡ってきています。
$.hogeは入力値の値を渡していることが確認できます。
参考サイト


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








コメント