Amazon States Language を使用して Step Functions ワークフローを定義する
Amazon ステートメント言語は JSON ベースの構造化言語で、ステートマシンおよび作業を実行できる状態のコレクション (Task 状態) の定義、次に移行する状態の決定 (Choice 状態)、エラーによる実行の停止 (Fail 状態) などに使用されます。
詳細については、Amazon ステートメント言語の仕様
Amazon ステートメント言語を使って Step Functions コンソール
注記
Step Functions のコンソールの外部 (任意のエディタなど) でステートマシンを定義する場合は、ステートマシン定義を拡張子.asl.json を付けて保存する必要があります。
Amazon States Language の仕様の例 (JSONata)
{
"Comment": "An example of the Amazon States Language using a choice state.",
"QueryLanguage": "JSONata",
"StartAt": "FirstState",
"States": {
"FirstState": {
"Type": "Task",
"Assign": {
"foo" : "{% $states.input.foo_input %}"
},
"Resource": "arn:aws:lambda:region:123456789012:function:FUNCTION_NAME",
"Next": "ChoiceState"
},
"ChoiceState": {
"Type": "Choice",
"Default": "DefaultState",
"Choices": [
{
"Next": "FirstMatchState",
"Condition": "{% $foo = 1 %}"
},
{
"Next": "SecondMatchState",
"Condition": "{% $foo = 2 %}"
}
]
},
"FirstMatchState": {
"Type" : "Task",
"Resource": "arn:aws:lambda:region:123456789012:function:OnFirstMatch",
"Next": "NextState"
},
"SecondMatchState": {
"Type" : "Task",
"Resource": "arn:aws:lambda:region:123456789012:function:OnSecondMatch",
"Next": "NextState"
},
"DefaultState": {
"Type": "Fail",
"Error": "DefaultStateError",
"Cause": "No Matches!"
},
"NextState": {
"Type": "Task",
"Resource": "arn:aws:lambda:region:123456789012:function:FUNCTION_NAME",
"End": true
}
}
}