

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

# Tutorial: Buat contoh EventBridge aplikasi Amazon
<a name="eb-tutorial-get-started"></a>

[Anda dapat menggunakan EventBridge untuk merutekan [acara](eb-events.md) ke fungsi Lambda tertentu menggunakan aturan.](eb-rules.md)

Dalam tutorial ini, Anda akan menggunakan AWS CLI, Node.js, dan kode di [ GitHubrepo](https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example) untuk membuat yang berikut:
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)Fungsi yang menghasilkan peristiwa untuk transaksi ATM bank.
+ Tiga fungsi Lambda untuk digunakan sebagai [target](eb-targets.md) aturan. EventBridge 
+ dan aturan yang merutekan peristiwa yang dibuat ke fungsi hilir yang benar berdasarkan [pola peristiwa](eb-event-patterns.md).

Contoh ini menggunakan AWS SAM template untuk menentukan EventBridge aturan. Untuk mempelajari lebih lanjut tentang menggunakan AWS SAM templat dengan EventBridge lihat[Menggunakan AWS Serverless Application Model template untuk menyebarkan sumber daya Amazon EventBridge](eb-use-sam.md).

Dalam repo, subdirektori *ATMProducer* berisi`handler.js`, yang mewakili acara produksi layanan ATM. Kode ini adalah penangan Lambda yang ditulis dalam Node.js, dan menerbitkan peristiwa EventBridge melalui [AWS SDK](https://www.npmjs.com/package/aws-sdk) menggunakan baris kode ini. JavaScript 

```
const result = await eventbridge.putEvents(params).promise()
```

Direktori ini juga berisi`events.js`, mencantumkan beberapa transaksi uji dalam array Entri. Sebuah peristiwa tunggal didefinisikan JavaScript sebagai berikut:

```
{
  // Event envelope fields
  Source: 'custom.myATMapp',
  EventBusName: 'default',
  DetailType: 'transaction',
  Time: new Date(),

  // Main event body
  Detail: JSON.stringify({
    action: 'withdrawal',
    location: 'MA-BOS-01',
    amount: 300,
    result: 'approved',
    transactionId: '123456',
    cardPresent: true,
    partnerBank: 'Example Bank',
    remainingFunds: 722.34
  })
}
```

Bagian *Detail* acara menentukan atribut transaksi. Ini termasuk lokasi ATM, jumlah, bank mitra, dan hasil transaksi.

`handler.js`File di subdirektori *ATMConsumer* berisi tiga fungsi:

```
exports.case1Handler = async (event) => {
  console.log('--- Approved transactions ---')
  console.log(JSON.stringify(event, null, 2))
}

exports.case2Handler = async (event) => {
  console.log('--- NY location transactions ---')
  console.log(JSON.stringify(event, null, 2))
}

exports.case3Handler = async (event) => {
  console.log('--- Unapproved transactions ---')
  console.log(JSON.stringify(event, null, 2))
}
```

Setiap fungsi menerima peristiwa transaksi, yang dicatat melalui `console.log` pernyataan ke [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html). Fungsi konsumen beroperasi secara independen dari produsen dan tidak menyadari sumber peristiwa.

Logika routing terkandung dalam EventBridge aturan yang digunakan oleh template aplikasi. AWS SAM Aturan mengevaluasi aliran peristiwa yang masuk, dan merutekan peristiwa yang cocok dengan fungsi Lambda target.

Aturan menggunakan pola acara yang merupakan objek JSON dengan struktur yang sama dengan peristiwa yang cocok. Berikut pola acara untuk salah satu aturan.

```
{
  "detail-type": ["transaction"],
  "source": ["custom.myATMapp"],
  "detail": {
    "location": [{
      "prefix": "NY-"
    }]
  }
}
```

**Topics**
+ [Prasyarat](#eb-gs-prereqs)
+ [Langkah 1: Buat aplikasi](#eb-gs-create-application)
+ [Langkah 2: Jalankan aplikasi](#eb-gs-run-application)
+ [Langkah 3: Periksa log dan verifikasi aplikasi berfungsi](#eb-gs-check-logs)
+ [Langkah 4: Bersihkan sumber daya Anda](#cleanup)

## Prasyarat
<a name="eb-gs-prereqs"></a>

Untuk menyelesaikan tutorial ini, Anda memerlukan sumber daya berikut:
+ Sebuah AWS akun. [Buat AWS akun](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) jika Anda belum memilikinya.
+ AWS CLI diinstal. Untuk menginstal AWS CLI, lihat [Menginstal, memperbarui, dan menghapus instalasi AWS CLI versi 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ Node.js 12.x diinstal. Untuk menginstal Node.js, lihat [Unduhan](https://nodejs.org/en/download/).

## Langkah 1: Buat aplikasi
<a name="eb-gs-create-application"></a>

Untuk menyiapkan aplikasi contoh, Anda akan menggunakan AWS CLI dan Git untuk membuat AWS sumber daya yang Anda perlukan.

**Untuk membuat aplikasi**

1. [Masuk ke AWS](https://console.aws.amazon.com/console/home).

1. [Instal Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) dan [instal AWS Serverless Application Model CLI di mesin](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) lokal Anda.

1. Buat direktori baru, lalu arahkan ke direktori itu di terminal.

1. Di baris perintah, masukkan`git clone https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example`.

1. Pada baris perintah jalankan perintah berikut:

   ```
   cd ./amazon-eventbridge-producer-consumer-example
   sam deploy --guided
   ```

1. Di terminal, lakukan hal berikut:

   1. Untuk`Stack Name`, masukkan nama untuk tumpukan. Misalnya, beri nama tumpukan`Test`.

   1. Untuk`AWS Region`, masuk ke Wilayah. Misalnya, `us-west-2`.

   1. Untuk `Confirm changes before deploy`, masukkan `Y`.

   1. Untuk`Allow SAM CLI IAM role creation`, masukkan `Y`

   1. Untuk`Save arguments to configuration file`, masukkan `Y`

   1. Untuk `SAM configuration file`, masukkan `samconfig.toml`.

   1. Untuk `SAM configuration environment`, masukkan `default`.

## Langkah 2: Jalankan aplikasi
<a name="eb-gs-run-application"></a>

Sekarang setelah Anda menyiapkan sumber daya, Anda akan menggunakan konsol untuk menguji fungsinya.

**Untuk menjalankan aplikasi**

1. Buka [konsol Lambda](https://console.aws.amazon.com/lambda/) di Wilayah yang sama tempat Anda menerapkan aplikasi. AWS SAM 

1. **Ada empat fungsi Lambda dengan awalan atm-demo.** Pilih **atmProducerFn**fungsi, lalu pilih **Tindakan**, **Uji**.

1. Masukkan `Test` untuk **Nama**.

1. Pilih **Uji**.

## Langkah 3: Periksa log dan verifikasi aplikasi berfungsi
<a name="eb-gs-check-logs"></a>

Sekarang setelah Anda menjalankan aplikasi, Anda akan menggunakan konsol untuk memeriksa CloudWatch Log.

**Untuk memeriksa log**

1. Buka [CloudWatch konsol](https://console.aws.amazon.com/cloudwatch/) di Wilayah yang sama tempat Anda menjalankan AWS SAM aplikasi.

1. Pilih **Log**, lalu pilih **Grup log**.

1. Pilih grup log yang berisi **atmConsumerCase1**. Anda melihat dua aliran yang mewakili dua transaksi yang disetujui oleh ATM. Pilih aliran log untuk melihat output.

1. Arahkan kembali ke daftar grup log, lalu pilih grup log yang berisi **atmConsumerCase2**. Anda akan melihat dua aliran yang mewakili dua transaksi yang cocok dengan filter lokasi *New York*.

1. Arahkan kembali ke daftar grup log, dan pilih grup log yang berisi **atmConsumerCase3**. Buka aliran untuk melihat transaksi yang ditolak.

## Langkah 4: Bersihkan sumber daya Anda
<a name="cleanup"></a>

Sekarang Anda dapat menghapus sumber daya yang Anda buat untuk tutorial ini, kecuali Anda ingin mempertahankannya. Dengan menghapus AWS sumber daya yang tidak lagi Anda gunakan, Anda mencegah tagihan yang tidak perlu ke AWS akun Anda.

**Untuk menghapus EventBridge aturan**

1. Buka [halaman Aturan](https://console.aws.amazon.com/events/home#/rules) EventBridge konsol.

1. Pilih aturan yang Anda buat.

1. Pilih **Hapus**.

1. Pilih **Hapus**.

**Untuk menghapus fungsi Lambda**

1. Buka [halaman Fungsi](https://console.aws.amazon.com/lambda/home#/functions) di konsol Lambda.

1. Pilih fungsi yang Anda buat.

1. Pilih **Tindakan**, **Hapus**.

1. Pilih **Hapus**.

**Untuk menghapus grup CloudWatch log Log**

1. Buka konsol [Cloudwatch](https://console.aws.amazon.com/Cloudwatch/home).

1. Pilih **Log**, **Grup log**.

1. Pilih grup log yang dibuat dalam tutorial ini.

1. Pilih **Actions** (Tindakan), **Delete log group(s)** (Hapus grup log).

1. Pilih **Hapus**.