AWS Step Functions のサンプル

ASL(Amazon States Language)の定義

{
  "Comment": "An example of the Amazon States Language using a choice state.",
  "StartAt": "FirstState",
  "States": {
    "FirstState": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:FUNCTION_NAME",
      "Next": "ChoiceState"
    },
    "ChoiceState": {
      "Type" : "Choice",
      "Choices": [
        {
          "Variable": "$.foo",
          "NumericEquals": 1,
          "Next": "FirstMatchState"
        },
        {
          "Variable": "$.foo",
          "NumericEquals": 2,
          "Next": "SecondMatchState"
        }
      ],
      "Default": "DefaultState"
    },

    "FirstMatchState": {
      "Type" : "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:OnFirstMatch",
      "Next": "NextState"
    },

    "SecondMatchState": {
      "Type" : "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:OnSecondMatch",
      "Next": "NextState"
    },

    "DefaultState": {
      "Type": "Fail",
      "Error": "DefaultStateError",
      "Cause": "No Matches!"
    },

    "NextState": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:123456789012:function:FUNCTION_NAME",
      "End": true
    }
  }
}

ステートマシンの内容

フィールド 内容
Comment ASLについてのコメント(概要等)
StartAt 最初に実行するState
TimeoutSeconds 処理を実行する時間
Version ASLのバージョン
States ステートマシンを構成するStateを定義する。複数のStateの指定が可能。

Stateの種類

フィールド 内容
Task ひとつの処理単位
Wait 処理をストップする時間
Pass 入力値をそのまま出力に渡す
Parallel 並列処理
Choice 条件分岐
Map 配列の要素ごとに処理を実行する
Fail 実行結果を失敗とする
Succeed 実行結果を成功とする

IT

Posted by arkgame