1日1%成長する ~AWS Step Functions~

AWSの学習メモ

state抜粋

{
    "StartAt": "Parallel",
    "States": {
        "Parallel": {
            "Type": "Parallel",
            "End": true,
            ~
            "Catch": [{
                "ErrorEquals": ["States.ALL"],
                "Next": "Fallback",
                "ResultPath": "$.error"
            }]
        },
        "Fallback": {
            "Type": "Pass",
            "End": true
        }
    }
}

=> States.ALLはすべてのエラーに合致
=> States.Timeoutはタイムアウト
=> States.TaskFailedはタスク実行失敗
=> States.Permissionsは実行権限がない


実行

実行時のARNはユニークで、
実行ログからたどる事が可能。
また、ステーマシンの実行結果は画面で確認(Visual workflow)
    -> cloudwatch eventでルールに基づいて通知可能
    -> 実行失敗で運用者に通知

課金形態は状態遷移1000会あたり$0.025となる。

リクエストサイズはmax 1MB。

AWS Step Functions localでローカルで開発できる。
dockerやjarパッケージで利用可能。

近しいサービス

・SQS(メッセージキューイング)
    サービス間のメッセージの管理に利用
    使い分けは処理の追跡やサービス間のメッセージ受け渡しなど、
    アプリ向け機能をマネージドで利用する場合はStep Functions
・SWF(simple workflow service)
    Deciderと呼ばれるプログラミングベースでワークフロー制御を行う
    java or rubyAWS Flow Frameworkと併用するのが一般的
    プログラミングベースなのでStepFunctionsと比較して複雑化する。
    そのためまずはStepFunctionsで検討する

ユースケース
    データプロセッシング:複数のデータストアを利用
    eコマース:在庫追跡や注文処理
    動画処理:サムネイルの生成、ビデオコーディング
    バッチ処理:ゲノム処理解析のような学術領域
    ウェブアプリケーション:複雑なユーザ登録プロセス
    管理者承認:管理者が承認した場合に限り処理を行う