AWSのStep Functionsを最近よくつかうのでステータスの概念をまとめる。Stateという言葉をよく使う。
基本ステータス(State)
- Pass
- 入力をそのまま出力として渡すだけのシンプルなステータス
- Task
- Lambda関数やAWS APIなどの作業を実行するステータス
- Choice
- 条件分岐を行うステータス
- Wait
- 指定時間または特定の時刻まで待機するステータス
- Succeed
- ステートマシンを成功として終了させるステータス
- Fail
- ステートマシンを失敗として終了させるステータス
- Parallel
- 並列処理を行うステータス
- Map
- 配列の各要素に対して同じ処理を繰り返し実行するステータス
各ステータスの特徴
Pass
- 単純にデータを渡すだけのステータス
- テスト段階や固定値を渡す際に使用
Task
- 作業を実行するステータス
- Lambda関数やAWS APIなどの外部サービスを呼び出す
- タイムアウトやエラー処理の設定が可能
Choice
- 条件に基づいて次の遷移先を決定
- 複数の条件と、それぞれに対応する次のステータスを定義可能
Wait
- 処理を一時停止するステータス
- 指定秒数の待機や特定の時刻まで待機が可能
Succeed
- ステートマシンを正常終了させるステータス
- 終了ステータスのため、次のステータスへの遷移はない
Fail
- ステートマシンを異常終了させるステータス
- エラーコードとエラーメッセージを設定可能
Parallel
- 並列して複数の処理を同時実行するステータス
- 各ブランチで独立した処理フローを定義可能
Map
- 配列の各要素に対して同じ処理を実行
- 大量のデータを同じ処理で扱う場合に便利
使い方のポイント
- 各ステータスを組み合わせて複雑なワークフローを構築できる
- JSONベースでステートマシンを定義する
- AWS Step Functions Visual Workflowでグラフィカルに確認しながらやるといい
- 条件分岐や並列処理、エラーハンドリングなど高度な制御ができるのもいい