LoginSignup
2
0

Step FunctionsのペイロードJSON理解した

Posted at

はじめに

Step Functions(sfn)をふと触ってみました。
lambdaをコールする際のinputとなるペイロードJSONの記法にやや戸惑ったので、アウトプットしてみます。

ペイロードJSONの記法

ペイロードJSONとは、sfnの中で実行されるlambdahandlerの第一引数にあたるオブジェクトです。

cap1.PNG

これです。

cap2.PNG

sfnコンソールでの設定箇所です。

cap3.PNG

簡単ですが、eventオブジェクトへのマッピングの動作確認ができました。

lambdaで参照したいものは大きく二つあると思います。
sfnのinputと、sfn全体のcontextをです。

それぞれについて整理します。

(参考)sfnの特殊なJSONPath記法について

JSONPathによってvalueが動的に定義されるkeyは、末尾に".$"を付ける必要があることに注意です。
https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-parameters

inputを参照したい場合

以下の要領で記載します。
"input.$": "$"

cap4.PNG

cap5.PNG

{"Comment": "テスト"}をinputにsfnを実行してみます。

cap6.PNG

"input.$": "$"で取得できていることが確認できます。

(参考)inputとは?

sfnにおいては、「①ワークフローが実行された最初の入力値」および、「②直前のstateの出力値」です。

cap7.PNG

LambdaAのinputは①ワークフローが実行された最初の入力値となります。
LambdaBのinputは②直前のstateの出力値=LambdaAのoutputとなります。

contextを参照したい場合

以下の要領で記載します。
"context.$": "$$"

cap9.PNG

cap8.PNG

取得できていることが確認できます。

(参考)contextとは?

sfn全体の情報を持つオブジェクトです。
sfnのIDや、TaskTokenなどを保持しています。

おわりに

そもそもJSONpathが理解できていなかったため最初は戸惑いましたが、整理してみれば単純な記法に思いました。

ばりばりsfnでマイクロサービスを結合させていきたいです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0