

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

# Mengotomatiskan pengiriman acara Step Functions dengan EventBridge
<a name="eventbridge-integration"></a>

Dengan EventBridge, Anda dapat memilih acara dari alur kerja standar Step Functions, untuk dikirim ke layanan lain untuk pemrosesan tambahan. Teknik ini menyediakan cara yang fleksibel untuk menghubungkan komponen secara longgar dan memantau sumber daya Anda.

Amazon EventBridge adalah layanan tanpa server yang menghubungkan komponen aplikasi bersama-sama untuk membangun aplikasi berbasis peristiwa yang dapat diskalakan. Event-driven *Arsitektur adalah gaya membangun sistem perangkat lunak yang digabungkan secara longgar yang bekerja sama dengan memancarkan dan menanggapi peristiwa.* Peristiwa mewakili perubahan status, atau pembaruan. 

Dengan menggunakan EventBridge untuk mengirimkan peristiwa Step Functions ke layanan lain, Anda dapat memantau alur kerja standar tanpa terus-menerus memanggil [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)API untuk mendapatkan status. Perubahan status dalam eksekusi mesin status dikirim ke EventBridge otomatis. Anda dapat menggunakan acara tersebut untuk menargetkan layanan. Misalnya, peristiwa mungkin memanggil AWS Lambda fungsi, memublikasikan pesan ke topik Amazon Simple Notification Service (Amazon SNS), atau bahkan menjalankan alur kerja SFN lainnya. 

**Cara kerja pengiriman acara**  
Step Functions menghasilkan dan mengirimkan peristiwa ke *bus EventBridge acara* default yang secara otomatis disediakan di setiap AWS akun. Bus acara adalah router yang menerima acara dan mengirimkannya ke nol atau lebih tujuan, atau *target*. Target adalah AWS layanan lain. Anda dapat menentukan aturan untuk bus acara yang membandingkan peristiwa dengan *pola acara* aturan. Ketika acara cocok dengan pola, bus acara mengirimkan acara ke target yang ditentukan. Diagram berikut menunjukkan proses ini:

![AWS layanan mengirim acara ke EventBridge tempat aturan cocok dengan acara dan mengirimkannya ke target.](http://docs.aws.amazon.com/id_id/step-functions/latest/dg/images/eventbridge-integration_shared_conceptual.png)


**Alur kerja standar versus Express**  
Hanya alur kerja standar yang memancarkan peristiwa ke. EventBridge Untuk memantau eksekusi alur kerja ekspres, Anda dapat menggunakan CloudWatch Log. Lihat [Masuk CloudWatch Log](cw-logs.md).

## Acara Step Functions
<a name="supported-events"></a>

Step Functions mengirimkan peristiwa berikut ke bus EventBridge acara default secara otomatis. Peristiwa yang cocok dengan pola acara aturan dikirim ke target yang ditentukan [berdasarkan upaya terbaik](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-service-event.html#eb-service-event-delivery-level). Acara mungkin dikirim keluar dari pesanan.

Untuk informasi selengkapnya, lihat [EventBridge peristiwa](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) di *Panduan EventBridge Pengguna Amazon.*


| Jenis detail acara | Deskripsi | 
| --- | --- | 
| [Perubahan Status Eksekusi](#event-detail-execution-status-change) | Merupakan perubahan status eksekusi mesin negara.  | 

## Menyampaikan peristiwa Step Functions menggunakan EventBridge
<a name="eventbridge-using-events-rules"></a>

Agar bus acara EventBridge default mengirim peristiwa Step Functions ke target, Anda harus membuat aturan. Setiap aturan berisi pola acara, yang EventBridge cocok dengan setiap acara yang diterima di bus acara. Jika data peristiwa cocok dengan pola peristiwa yang ditentukan, EventBridge mengirimkan peristiwa itu ke target aturan.

Untuk petunjuk komprehensif tentang cara membuat aturan bus acara, lihat [Membuat aturan yang bereaksi terhadap peristiwa](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html) di *Panduan EventBridge Pengguna*.

Anda juga dapat membuat aturan bus acara untuk mesin status tertentu dari Step Functions konsol:
+ Pada halaman **Detail** mesin status, pilih **Tindakan**, lalu pilih **Buat *EventBridge*aturan**.

   EventBridge Konsol terbuka ke halaman **Buat aturan**, dengan mesin status dipilih sebagai sumber peristiwa untuk aturan tersebut.
+ Ikuti prosedur yang dirinci dalam [Membuat aturan yang bereaksi terhadap peristiwa](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html) di *Panduan EventBridge Pengguna*.

### Membuat pola acara yang cocok dengan peristiwa Step Functions
<a name="eventbridge-using-events-rules-patterns"></a>

Setiap pola acara adalah objek JSON yang berisi:
+ `source`Atribut yang mengidentifikasi layanan yang mengirim acara. Untuk peristiwa Step Functions, sumbernya adalah`aws.states`.
+ (Opsional): `detail-type` Atribut yang berisi array jenis acara yang cocok.
+ (Opsional): `detail` Atribut yang berisi data acara lain yang cocok.

Misalnya, pola acara berikut cocok dengan semua peristiwa Perubahan Status Eksekusi dari Step Functions:

```
{
  "source": ["aws.states"],
  "detail-type": ["Step Functions Execution Status Change"]
}
```

Sementara contoh berikut cocok dengan eksekusi tertentu yang terkait dengan mesin status tertentu, ketika eksekusi itu gagal atau habis waktu:

```
{
  "source": ["aws.states"],
  "detail-type": ["Step Functions Execution Status Change"],
  "detail": {
    "status": ["FAILED", "TIMED_OUT"],
    "stateMachineArn": ["arn:aws:states:{{region}}:{{account-id}}:stateMachine:state-machine"],
    "executionArn": ["arn:aws:states:{{region}}:{{account-id}}:execution:state-machine-name:execution-name"]
  }
}
```

Untuk informasi selengkapnya tentang penulisan pola acara, lihat [Pola acara](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) di *Panduan EventBridge Pengguna*.

## Memicu mesin status Step Functions menggunakan peristiwa
<a name="eventbridge-stepfunctions-as-target"></a>

Anda juga dapat menentukan mesin status Step Functions sebagai target untuk aturan bus EventBridge acara. Ini memungkinkan Anda memicu eksekusi alur kerja Step Functions sebagai respons terhadap peristiwa dari AWS layanan lain.

Untuk informasi selengkapnya, lihat [ EventBridgeTarget Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html) *di Panduan EventBridge Pengguna Amazon*.

## Referensi detail acara Step Functions
<a name="events-detail-reference"></a>

Semua peristiwa dari AWS layanan memiliki seperangkat bidang umum yang berisi metadata tentang acara tersebut, seperti AWS layanan yang merupakan sumber acara, waktu acara dibuat, akun dan wilayah tempat acara berlangsung, dan lainnya. Untuk definisi bidang umum ini, lihat [Referensi struktur acara](https://docs.aws.amazon.com/eventbridge/latest/ref/overiew-event-structure.html) di *Panduan EventBridge Pengguna Amazon*. 

Selain itu, setiap acara memiliki `detail` bidang yang berisi data khusus untuk peristiwa tertentu. 

Saat menggunakan EventBridge untuk memilih dan mengelola peristiwa Step Functions, penting untuk mengingat hal berikut:
+ `source`Bidang untuk semua peristiwa dari Step Functions diatur ke`aws.states`.
+ `detail-type`Bidang menentukan jenis acara. 

  Misalnya, `Step Functions Execution Status Change`.
+ `detail`Bidang berisi data yang spesifik untuk peristiwa tertentu. 

Untuk informasi tentang membuat pola peristiwa yang memungkinkan aturan agar sesuai dengan peristiwa Step Functions, lihat [Pola peristiwa](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) di *Panduan EventBridge Pengguna Amazon*.

Untuk informasi selengkapnya tentang peristiwa dan cara EventBridge memprosesnya, lihat [ EventBridgeperistiwa Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events.html) *di Panduan EventBridge Pengguna Amazon*.

### Perubahan Status Eksekusi
<a name="event-detail-execution-status-change"></a>

Merupakan perubahan status eksekusi mesin negara.

`detail-type`Bidang `source` dan disertakan di bawah ini karena berisi nilai spesifik untuk peristiwa Step Functions. Untuk definisi bidang metadata lain yang disertakan dalam semua peristiwa, lihat [Referensi struktur peristiwa](https://docs.aws.amazon.com/eventbridge/latest/ref/overiew-event-structure.html) di * EventBridge Panduan Pengguna Amazon*.

#### Struktur peristiwa
<a name="event-detail-execution-status-change-structure"></a>

```
{
  . . .,
  "detail-type": "Step Functions Execution Status Change",
  "source": "aws.states",
  . . .,
  "detail": {
    "executionArn" : "string",
    "input" : "string",
    "inputDetails" : {
      "included" : "boolean"
    },
    "name" : "string",
    "output" : "string",
    "outputDetails" : {
      "included" : "boolean"
    },
    "startDate" : "integer",
    "stateMachineArn" : "string",
    "stopDate" : "integer",
    "status" : "RUNNING" | "SUCCEEDED" | "FAILED" | "TIMED_OUT" | "ABORTED" | "PENDING_REDRIVE",
    "stateMachineVersionArn" : "string",
    "stateMachineAliasArn" : "string",
    "redriveCount" : "integer",
    "redriveDate" : "string",
    "redriveStatus" : "NOT_REDRIVABLE" | "REDRIVABLE" | "REDRIVE_IN_PROGRESS",
    "redriveStatusReason" : "string",
    "error" : "string",
    "cause" : "string"
  }
}
```

#### Keterangan
<a name="event-detail-execution-status-change-remarks"></a>

Peristiwa Perubahan Status Eksekusi dapat berisi properti input dalam definisinya. Untuk beberapa peristiwa, peristiwa Perubahan Status Eksekusi juga dapat berisi properti keluaran dalam definisinya.
+ Jika input lolos gabungan dan output lolos yang dikirim EventBridge melebihi 248 KiB, maka input akan dikecualikan. Demikian pula, jika output yang lolos melebihi 248 KiB, maka output akan dikecualikan. Ini adalah hasil dari kuota acara.
+  Anda dapat menentukan apakah muatan telah dipotong dengan properti `inputDetails` dan `outputDetails`. Untuk informasi selengkapnya, lihat [Tipe Data `CloudWatchEventsExecutionDataDetails`](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CloudWatchEventsExecutionDataDetails.html). 
+  Untuk Alur Kerja Standar, gunakan [DescribeExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeExecution.html)untuk melihat input dan output penuh.

   `DescribeExecution` ini tidak tersedia untuk Alur Kerja Ekspres. Jika Anda ingin melihat lengkap input/output, Anda dapat:
  + Bungkus Alur Kerja Ekspres Anda dengan Alur Kerja Standar.
  + Gunakan Amazon S3 ARN. Untuk informasi selengkapnya tentang menggunakan ARN, lihat [Menggunakan Amazon S3 ARNs alih-alih melewatkan muatan besar di Step Functions](sfn-best-practices.md#avoid-exec-failures).

#### Contoh
<a name="event-detail-execution-status-change-examples"></a>

**Example Perubahan Status Eksekusi: eksekusi dimulai**  <a name="event-detail-execution-status-change-started.example"></a>

```
{
    "version": "0",
    "id": "315c1398-40ff-a850-213b-158f73e60175",
    "detail-type": "Step Functions Execution Status Change",
    "source": "aws.states",
    "account": "{{account-id}}",
    "time": "2019-02-26T19:42:21Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name"
    ],
    "detail": {
        "executionArn": "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name",
        "stateMachineArn": "arn:aws::states:us-east-2:{{account-id}}:stateMachine:state-machine",
        "name": "execution-name",
        "status": "RUNNING",
        "startDate": 1551225271984,
        "stopDate":  null,
        "input": "{}",
        "inputDetails": {
             "included": true
        },
        "output": null,
        "outputDetails": null,
        "stateMachineVersionArn": null,
        "stateMachineAliasArn": null,
        "redriveCount": 0,
        "redriveDate": null,
        "redriveStatus": "NOT_REDRIVABLE",
        "redriveStatusReason": "Execution is RUNNING and cannot be redriven",
        "error": null,
        "cause": null
    }
}
```

**Example Perubahan Status Eksekusi: eksekusi berhasil**  <a name="event-detail-execution-status-change-succeeded.example"></a>

```
{
    "version": "0",
    "id": "315c1398-40ff-a850-213b-158f73e60175",
    "detail-type": "Step Functions Execution Status Change",
    "source": "aws.states",
    "account": "{{account-id}}",
    "time": "2019-02-26T19:42:21Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name"
    ],
    "detail": {
        "executionArn": "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name",
        "stateMachineArn": "arn:aws:states:us-east-2:{{account-id}}:stateMachine:state-machine",
        "name": "execution-name",
        "status": "SUCCEEDED",
        "startDate": 1547148840101,
        "stopDate": 1547148840122,
        "input": "{}",
        "inputDetails": {
             "included": true
        },
        "output": "\"Hello World!\"",
        "outputDetails": {
             "included": true
        },
        "stateMachineVersionArn": null,
        "stateMachineAliasArn": null,
        "redriveCount": 0,
        "redriveDate": null,
        "redriveStatus": "NOT_REDRIVABLE",
        "redriveStatusReason": "Execution is SUCCEEDED and cannot be redriven",
        "error": null,
        "cause": null
    }
}
```

**Example Perubahan Status Eksekusi: eksekusi gagal**  <a name="event-detail-execution-status-change-failed.example"></a>

```
{
    "version": "0",
    "id": "315c1398-40ff-a850-213b-158f73e60175",
    "detail-type": "Step Functions Execution Status Change",
    "source": "aws.states",
    "account": "{{account-id}}",
    "time": "2019-02-26T19:42:21Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name"
    ],
    "detail": {
        "executionArn": "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name",
        "stateMachineArn": "arn:aws:states:us-east-2:{{account-id}}:stateMachine:state-machine",
        "name": "execution-name",
        "status": "FAILED",
        "startDate": 1551225146847,
        "stopDate": 1551225151881,
        "input": "{}",
        "inputDetails": {
             "included": true
        },
        "output": null,
        "outputDetails": null,
        "stateMachineVersionArn": null,
        "stateMachineAliasArn": null,
        "redriveCount": 0,
        "redriveDate": null,
        "redriveStatus": "REDRIVABLE",
        "redriveStatusReason": "Execution is FAILED and is redrivable",
        "error": "ErrorCode",
        "cause": "An error occurred."
    }
}
```

**Example Perubahan Status Eksekusi: timed-out**  <a name="event-detail-execution-status-change-timed-out.example"></a>

```
{
    "version": "0",
    "id": "315c1398-40ff-a850-213b-158f73e60175",
    "detail-type": "Step Functions Execution Status Change",
    "source": "aws.states",
    "account": "{{account-id}}",
    "time": "2019-02-26T19:42:21Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name"
    ],
    "detail": {
        "executionArn": "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name",
        "stateMachineArn": "arn:aws:states:us-east-2:{{account-id}}:stateMachine:state-machine",
        "name": "execution-name",
        "status": "TIMED_OUT",
        "startDate": 1551224926156,
        "stopDate": 1551224927157,
        "input": "{}",
        "inputDetails": {
             "included": true
        },
        "output": null,
        "outputDetails": null,
        "stateMachineVersionArn": null,
        "stateMachineAliasArn": null,
        "redriveCount": 0,
        "redriveDate": null,
        "redriveStatus": "REDRIVABLE",
        "redriveStatusReason": "Execution is TIMED_OUT and is redrivable",
        "error": "States.Timeout",
        "cause": "An error occurred."
    }
}
```

**Example Perubahan Status Eksekusi: dibatalkan**  <a name="event-detail-execution-status-change-aborted.example"></a>

```
{
    "version": "0",
    "id": "315c1398-40ff-a850-213b-158f73e60175",
    "detail-type": "Step Functions Execution Status Change",
    "source": "aws.states",
    "account": "{{account-id}}",
    "time": "2019-02-26T19:42:21Z",
    "region": "us-east-2",
    "resources": [
      "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name"
    ],
    "detail": {
        "executionArn": "arn:aws:states:us-east-2:{{account-id}}:execution:state-machine-name:execution-name",
        "stateMachineArn": "arn:aws:states:us-east-2:{{account-id}}:stateMachine:state-machine",
        "name": "execution-name",
        "status": "ABORTED",
        "startDate": 1551225014968,
        "stopDate": 1551225017576,
        "input": "{}",
        "inputDetails": {
             "included": true
        },
        "output": null,
        "outputDetails": null,
        "stateMachineVersionArn": null,
        "stateMachineAliasArn": null,
        "redriveCount": 0,
        "redriveDate": null,
        "redriveStatus": "NOT_REDRIVABLE",
        "redriveStatusReason": "Execution is ABORTED and cannot be redriven",
        "error": null,
        "cause": null
    }
}
```