0
0

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 1 year has passed since last update.

AWS Step Functions メモ

Posted at

概要

  • AWSが提供するサーバーレスオーケストレーションサービス。
  • 分散アプリケーション・マイクロサービスを「ステートマシン」と呼ばれる仕組みでオーケストレートする。
    • 定義したステートマシンはAWS コンソールから「ワークフロー」という形式で可視化できる。

用語

ステート

  • 状態または一つの作業単位を表す。

ステートマシン

  • ステートからなるフロー(ワークフロー)を指す。

    step_functions_wf.png

  • ASL (Amazon States Language) と呼ばれるJSON 形式の言語で定義する。

  • ASL例

    {
      "Comment": "A Hello World example of the Amazon States Language using Pass states",
      "StartAt": "Hello",
      "States": {
        "Hello": {
          "Type": "Pass",
          "Result": "Hello",
          "Next": "World"
        },
        "World": {
          "Type": "Pass",
          "Result": "World has been updated!",
          "End": true
        }
      }
    }
    
    • Comment:コメント(概要等)

    • StartAt:最初に実行するState

    • States:ステートマシンを構成するStateを定義する。複数のStateの指定が可能。

      • Task:処理の単位
      • Choice:条件分岐
      • Fail/Succeed:失敗または成功として停止
      • Pass:入力を単純に出力に渡す、または一部の固定データを出力
      • Wait:処理停止時間
      • Parallel:並列処理
      • Map:配列要素ごとに処理を実行

Task

フィールド 説明
Name タグ
Resource※必須 URI/サービスARN
Parameters Stateに渡すJSON形式の値
ResultPath Stateの実行結果を受け取るフィールド
Retry Stateでランタイムエラーが発生した際の再試行ポリシー
Catch Stateでランタイムエラーが発生し、再試行ポリシーが使い果たされたか定義されていない場合に実行される処理
TimeoutSeconds 処理をタイムアウトさせる時間

など

ワークフロー

  • ステートマシンを作成する際に以下いずれかのワークフローを選択する。
    • 標準
      • 実行レート:毎秒 2,000
      • 状態遷移レート:毎秒4,000
      • 課金形態:状態遷移ごと
    • Express※大量データ処理向き
      • 実行レート:毎秒100,000
      • 状態遷移レート:ほぼ無制限
      • 課金形態:実行回数と実行期間

サポートAWS サービス

  • 次のようなサービスとの連携をサポート

    • Lambda
    • DynamoDB
    • SNS
    • SQS
    • Batch
    • ECS

    など

  • 連携パターン

    • リクエストレスポンス
      * リソースに対してHTTP応答を要求。ジョブの完了を待たない。
    • ジョブの実行
      * AWS Batchなどとの統合の場合にリクエストが完了するのを待ってから次のStateに遷移
    • コールバックまで待機
      * リソースからタスクトークンが返されるまで処理を中断

ステートマシン実行方法

  • API呼び出し
  • マネジメントコンソール
  • CloudWatch Events
  • API Gateway
  • AWS CLI
  • SDK
  • ステート(ネストして実行)

参考情報

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?