1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Step Functionsで前のStateの入力を次のStateに渡す

Last updated at Posted at 2018-06-10

Stateの種類によって入出力の挙動が異なるので注意が必要。

Task以外のState

デフォルトで前のStateからきた入力をそのまま出力するので問題ない。OutputPath を設定することで入力をフィルタリングして渡すことができる。また、Pass State ならばResultResultPathを指定することで、次のStateへの出力項目を追加することができる。

Task

基本的には、Taskの出力がそのまま次のStateの入力となる。自身の入力を次のStateに渡したい場合は、次のいずれかの方法をとる。

  • ResultPath でTaskの出力を値として定義した上で OutputPath: "$" を指定する
  • Task の側で入力値を明示的に出力する。例えばLambdaの場合はeventに入力値が入るので、それを返すようにすれば入力値を次のStateに渡すことができる

ResultPath で出力を拾うパターン

  • Statement言語
"exState1": {
  "Type": "Task",
  "Resource": "arn:...(略)..."
  "ResultPath": "$.Result"
  "OutputPath": "$"
  "Next": "exState2"
}

Taskの実装に任せるパターン

Lambdaを使う場合

  • Statement言語
"exState1": {
  "Type": "Task",
  "Resource": "arn:...(略)..."
  "Next": "exState2"
}
  • Lambda内の処理(Python)
def handler (event, content):

    ### ...(処理は省略)...

    return event  ### eventの値をそのまま返す

参考

AWS Step Functions 開発者ガイド » Amazon ステートメント言語 » 入力および出力処理

1
2
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
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?