

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan Amazon States Language untuk menentukan alur kerja Step Functions
<a name="concepts-amazon-states-language"></a>

Amazon States Language adalah, bahasa terstruktur berbasis JSON yang digunakan untuk menentukan mesin status Anda, koleksi [status](workflow-states.md), yang dapat melakukan pekerjaan (status `Task`), menentukan status yang akan ditransisikan ke berikutnya (status `Choice`), menghentikan eksekusi dengan kesalahan (status `Fail`), dan sebagainya. 

Untuk informasi selengkapnya, lihat [Spesifikasi Amazon States Language](https://states-language.net/spec.html) dan [Statelint](https://github.com/awslabs/statelint), alat yang memvalidasi kode Amazon States Language.

Untuk membuat mesin status pada [Konsol Step Functions](https://console.aws.amazon.com/states/home?region=us-east-1#/) menggunakan Amazon States Language, lihat [Memulai](getting-started.md).

**catatan**  
Jika Anda menentukan mesin status Anda di luar konsol Fungsi Langkah, seperti di editor pilihan Anda, Anda harus menyimpan definisi mesin status Anda dengan ekstensi *.asl.json*.

## Contoh Spesifikasi Bahasa Amazon States (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
    }
  }
}
```