Open5
stepfunction勉強

◆stepfuntionとは
多数のプロセスのオーケストレーションサービス
◆stepfuntionを使うといいところ
- 処理全体の流れをワークフローで可視化する事ができる
- フロー内で条件分岐をする事が可能
- 処理の失敗時にどこで失敗をしたか見えるかできる
- 順次実行、並列実行をさせることができる
- 並列処理により処理時間の短縮する事ができる
- ワークフロースタジオを使用してGUIでフローを作成する事ができる

◆ステートマシンはどうやって作るのか
- ASLというJOSN形式の言語でワークフローを記述する
◆stateとは?
ステートマシンの構成要素のこと
◆実行方法
イベントを契機にステートマシンを呼び出したり、手動実行、lambdaなどからも実行できる。
◆データの入力
・inputPath(特定の値を抜き出す)、parameters(キーと値のペアを生成)
◆処理結果の受け取り
・ResultPathで結果を受け取るフィールドを指定する
・ResultPathがないとStateの実行結果がOutputPathに渡される
◆データの出力
・OutputPathで次のstateに受け渡す情報を指定する
・OutputPathが未指定だとresultPathの情報を加味した結果が出力される

- Task:実際に実行する処理を定義するstate type。最も基本的な単一の作業単位。
- wait:jsのsleepみたいなイメージ。指定した時間だけ待機。
- pass:特に作業をさせるものではない。デバッグに使える。Resultで疑似的にステートの実行結果を記載できる。
- parallel:stateを並列に実行する時に使用する。並列実行の際はそのいずれかの要素が失敗すると並列実行全体が失敗扱いになる。
Branch
の部分に配列形式で並列実行するstateを記載する。 - choice:条件分岐に使用する。defalutはどの条件にも合致しなかった際に実行される。Choicesでは配列で条件分岐の内容を記載。
- succeed:この後に追加のフィールドは設けずに、処理を停止させるために使用する
- fail:succeedの逆。ステートマシンの実行を失敗に落として処理を停止させる。

◆ステートマシンの実行ステータスの通知
ステータスマシンがエラーに落ちてしまった場合は、CWと連携する事でSNSを使用し通知を出せる。