

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon States Language を使用して Step Functions ワークフローを定義する
<a name="concepts-amazon-states-language"></a>

Amazon ステートメント言語は JSON ベースの構造化言語で、ステートマシンおよび作業を実行できる[状態](workflow-states.md)のコレクション (`Task` 状態) の定義、次に移行する状態の決定 (`Choice` 状態)、エラーによる実行の停止 (`Fail` 状態) などに使用されます。

詳細については、[Amazon ステートメント言語の仕様](https://states-language.net/spec.html)と、Amazon ステートメント言語コードを検証するツールである [Statelint](https://github.com/awslabs/statelint) を参照してください。

Amazon ステートメント言語を使って [Step Functions コンソール](https://console.aws.amazon.com/states/home?region=us-east-1#/)上でステートマシンを作成するには、[開始方法](getting-started.md)を参照してください。

**注記**  
Step Functions のコンソールの外部 (任意のエディタなど) でステートマシンを定義する場合は、ステートマシン定義を拡張子*.asl.json* を付けて保存する必要があります。

## Amazon States Language の仕様の例 (JSONata)
<a name="example-amazon-states-language-specification"></a>

```
{
  "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
    }
  }
}
```