

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

# EventBridge Pipa Amazon
<a name="eb-pipes"></a>

Amazon EventBridge Pipes menghubungkan sumber ke target. [Pipa dimaksudkan untuk point-to-point integrasi antara [sumber](eb-pipes-event-source.md) dan [target](eb-pipes-event-target.md) yang didukung, dengan dukungan untuk transformasi dan pengayaan lanjutan.](pipes-enrichment.md) Ini mengurangi kebutuhan akan pengetahuan khusus dan kode integrasi saat mengembangkan arsitektur berbasis peristiwa, mendorong konsistensi di seluruh aplikasi perusahaan Anda. Untuk menyiapkan pipa, Anda memilih sumber, menambahkan pemfilteran opsional, menentukan pengayaan opsional, dan memilih target untuk data peristiwa.

**catatan**  
Anda juga dapat merutekan acara menggunakan bus acara. Bus acara sangat cocok untuk many-to-many perutean acara antara layanan yang digerakkan oleh acara. Untuk informasi selengkapnya, lihat [Bus acara di Amazon EventBridge](eb-event-bus.md).

## Bagaimana EventBridge Pipa bekerja
<a name="pipes-how-it-works"></a>

Pada tingkat tinggi, inilah cara kerja EventBridge Pipes:

1. Anda membuat pipa di akun Anda. Hal ini mencakup:
   + Menentukan salah satu [sumber acara](eb-pipes-event-source.md) yang didukung dari mana Anda ingin pipa Anda menerima acara.
   + Secara opsional, mengkonfigurasi filter sehingga pipa hanya memproses subset dari peristiwa yang diterimanya dari sumbernya.
   + Secara opsional, mengonfigurasi langkah pengayaan yang meningkatkan data peristiwa sebelum mengirimkannya ke target.
   + Menentukan salah satu [target](eb-pipes-event-target.md) yang didukung yang Anda inginkan pipa Anda untuk mengirim acara.

1. Sumber acara mulai mengirim peristiwa ke pipa, dan pipa memproses peristiwa sebelum mengirimnya ke target.
   + Jika Anda telah mengonfigurasi filter, pipa mengevaluasi peristiwa dan hanya mengirimkannya ke target jika cocok dengan filter itu.

     Anda hanya dikenakan biaya untuk acara yang cocok dengan filter.
   + Jika Anda telah mengonfigurasi pengayaan, pipa melakukan pengayaan itu pada acara tersebut sebelum mengirimkannya ke target.

     Jika acara dikelompokkan, pengayaan mempertahankan urutan acara dalam batch.

![\[Sumber mengirimkan peristiwa ke pipa, yang memfilter dan merutekan peristiwa yang cocok dengan target.\]](http://docs.aws.amazon.com/id_id/eventbridge/latest/userguide/images/pipes-overview_eventbridge_architectural.svg)


Misalnya, pipa dapat digunakan untuk membuat sistem e-commerce. Misalkan Anda memiliki API yang berisi informasi pelanggan, seperti alamat pengiriman. 

1. Anda kemudian membuat pipa dengan yang berikut: 
   + Pesanan Amazon SQS menerima antrian pesan sebagai sumber acara.
   + Tujuan EventBridge API sebagai pengayaan
   + Mesin AWS Step Functions negara sebagai target

1. Kemudian, ketika pesan yang diterima pesanan Amazon SQS muncul di antrian, pesan tersebut dikirim ke pipa Anda.

1. Pipa kemudian mengirimkan data tersebut ke pengayaan Tujuan EventBridge API, yang mengembalikan informasi pelanggan untuk pesanan tersebut. 

1. Terakhir, pipa mengirimkan data yang diperkaya ke mesin AWS Step Functions negara, yang memproses pesanan.

# Konsep EventBridge Pipa Amazon
<a name="pipes-concepts"></a>

Berikut ini adalah melihat lebih dekat komponen dasar EventBridge Pipa.

## Pipa
<a name="pipes-concepts-pipe"></a>

Pipa merutekan peristiwa dari satu sumber ke satu target. Pipa juga mencakup kemampuan untuk memfilter untuk peristiwa tertentu, dan untuk melakukan pengayaan pada data peristiwa sebelum dikirim ke target.

![\[Pipa merutekan peristiwa yang disaring ke target yang ditentukan, dengan langkah pengayaan opsional.\]](http://docs.aws.amazon.com/id_id/eventbridge/latest/userguide/images/pipes-overview-detailed_eventbridge_architectural.svg)


## Sumber
<a name="pipes-sources"></a>

EventBridge Pipes menerima data peristiwa dari berbagai sumber, menerapkan filter opsional dan pengayaan data tersebut, dan mengirimkannya ke target. Jika sumber memberlakukan perintah untuk peristiwa yang dikirim ke pipa, pesanan itu dipertahankan sepanjang seluruh proses ke target. 

Untuk informasi selengkapnya tentang sumber, lihat [Sumber EventBridge Pipa Amazon](eb-pipes-event-source.md).

## Penyaring
<a name="pipes-filtering"></a>

Pipa dapat memfilter peristiwa sumber tertentu dan kemudian memproses hanya sebagian dari peristiwa tersebut. Untuk mengonfigurasi pemfilteran pada pipa, Anda menentukan pola peristiwa yang digunakan pipa untuk menentukan peristiwa mana yang akan dikirim ke target. 

Anda hanya dikenakan biaya untuk acara yang cocok dengan filter.

Untuk informasi selengkapnya, lihat [Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

## Pengayaan
<a name="pipes-enrichment-overview"></a>

Dengan langkah pengayaan EventBridge Pipa, Anda dapat meningkatkan data dari sumber sebelum mengirimkannya ke target. Misalnya, Anda mungkin menerima acara yang *dibuat Tiket* yang tidak menyertakan data tiket lengkap. Menggunakan pengayaan, Anda dapat meminta fungsi Lambda memanggil `get-ticket` API untuk detail tiket lengkap. Pipa kemudian dapat mengirim informasi itu ke [target](eb-pipes-event-target.md).

Untuk informasi selengkapnya tentang memperkaya data peristiwa, lihat. [Pengayaan acara di Amazon Pipes EventBridge](pipes-enrichment.md)

## Target
<a name="pipes-targets"></a>

Setelah data peristiwa difilter dan diperkaya, Anda dapat mengirimkannya ke target tertentu, seperti aliran Amazon Kinesis atau grup log Amazon CloudWatch . Untuk daftar target yang tersedia, lihat[Target Amazon EventBridge Pipes](eb-pipes-event-target.md).

Anda dapat mengubah data setelah ditingkatkan dan sebelum dikirim oleh pipa ke target. Untuk informasi selengkapnya, lihat [Transformasi masukan Amazon EventBridge Pipes](eb-pipes-input-transformation.md).

Beberapa pipa, masing-masing dengan sumber yang berbeda, dapat mengirim acara ke target yang sama.

Anda juga dapat menggunakan pipa dan bus acara bersama-sama untuk mengirim acara ke beberapa target. Kasus penggunaan yang umum adalah membuat pipa dengan bus acara sebagai targetnya; pipa mengirimkan peristiwa ke bus acara, yang kemudian mengirimkan peristiwa tersebut ke beberapa target. Misalnya, Anda dapat membuat pipa dengan aliran DynamoDB untuk sumber, dan bus acara sebagai target. Pipa menerima peristiwa dari aliran DynamoDB dan mengirimkannya ke bus acara, yang kemudian mengirimkannya ke beberapa target sesuai dengan aturan yang telah Anda tentukan di bus acara.

# Izin sumber acara untuk Amazon Pipes EventBridge
<a name="eb-pipes-permissions"></a>

Saat menyiapkan pipa, Anda dapat menggunakan peran eksekusi yang ada, atau EventBridge membuatnya untuk Anda dengan izin yang diperlukan. Izin EventBridge Pipa membutuhkan bervariasi berdasarkan jenis sumber, dan tercantum di bawah ini. Jika Anda menyiapkan peran eksekusi Anda sendiri, Anda harus menambahkan izin ini sendiri.

**catatan**  
Jika Anda tidak yakin izin dengan cakupan yang tepat yang diperlukan untuk mengakses sumber, gunakan konsol EventBridge Pipes untuk membuat peran baru, lalu periksa tindakan yang tercantum dalam kebijakan.

**Topics**
+ [Izin peran eksekusi DynamoDB](#pipes-perms-ddb)
+ [Izin peran eksekusi Kinesis](#pipes-perms-ak)
+ [Izin peran eksekusi Amazon MQ](#pipes-perms-mq)
+ [Izin peran eksekusi MSK Amazon](#pipes-perms-msk)
+ [Izin peran eksekusi Apache Kafka yang dikelola sendiri](#pipes-perms-kafka)
+ [Izin peran eksekusi Amazon SQS](#pipes-perms-sqs)
+ [Pengayaan dan izin target](#pipes-perms-enhance-target)

## Izin peran eksekusi DynamoDB
<a name="pipes-perms-ddb"></a>

Untuk DynamoDB Streams EventBridge , Pipes memerlukan izin berikut untuk mengelola sumber daya yang terkait dengan aliran data DynamoDB Anda.
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_ListStreams.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_ListStreams.html)

Untuk mengirim catatan batch yang gagal ke antrean huruf mati pipa, peran eksekusi pipa Anda memerlukan izin berikut:
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)

## Izin peran eksekusi Kinesis
<a name="pipes-perms-ak"></a>

Untuk Kinesis, EventBridge Pipes memerlukan izin berikut untuk mengelola sumber daya yang terkait dengan aliran data Kinesis Anda.
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamSummary.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamSummary.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html)

Untuk mengirim catatan batch yang gagal ke antrean huruf mati pipa, peran eksekusi pipa Anda memerlukan izin berikut:
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)

## Izin peran eksekusi Amazon MQ
<a name="pipes-perms-mq"></a>

Untuk Amazon MQ, EventBridge Pipes memerlukan izin berikut untuk mengelola sumber daya yang terkait dengan broker pesan Amazon MQ Anda.
+ [https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-http-methods](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-http-methods)
+ [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)

## Izin peran eksekusi MSK Amazon
<a name="pipes-perms-msk"></a>

Untuk Amazon MSK, EventBridge memerlukan izin berikut untuk mengelola sumber daya yang terkait dengan topik MSK Amazon Anda.

**catatan**  
Jika Anda menggunakan autentikasi berbasis peran IAM, peran eksekusi Anda akan memerlukan izin yang tercantum di samping yang tercantum [Autentikasi berbasis peran IAM](eb-pipes-msk.md#pipes-msk-permissions-iam-policy) di bawah ini.
+ [https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn.html#v2-clusters-clusterarnget](https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn.html#v2-clusters-clusterarnget)
+ [https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-bootstrap-brokers.html#clusters-clusterarn-bootstrap-brokersget](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-bootstrap-brokers.html#clusters-clusterarn-bootstrap-brokersget)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)

## Izin peran eksekusi Apache Kafka yang dikelola sendiri
<a name="pipes-perms-kafka"></a>

Untuk Apache Kafka yang dikelola sendiri, EventBridge memerlukan izin berikut untuk mengelola sumber daya yang terkait dengan aliran Apache Kafka yang dikelola sendiri.

### Izin yang diperlukan
<a name="pipes-perms-kafka-req"></a>

Untuk membuat dan menyimpan log dalam grup log di Amazon CloudWatch Logs, pipa Anda harus memiliki izin berikut dalam peran pelaksanaannya:
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)

### Izin opsional
<a name="pipes-perms-kafka-optional"></a>

Pipa Anda mungkin juga memerlukan izin untuk:
+ Jelaskan rahasia Secrets Manager Anda.
+ Akses AWS Key Management Service (AWS KMS) kunci terkelola pelanggan Anda.
+ Akses VPC Amazon Anda.

### Secrets Manager dan AWS KMS izin
<a name="pipes-perms-kafka-sm-kms"></a>

Bergantung pada jenis kontrol akses yang Anda konfigurasikan untuk broker Apache Kafka Anda, pipa Anda mungkin memerlukan izin untuk mengakses rahasia Secrets Manager Anda atau untuk mendekripsi kunci yang dikelola pelanggan Anda. AWS KMS Untuk mengakses sumber daya ini, peran eksekusi fungsi Anda harus memiliki izin berikut:
+ [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
+ [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)

### Izin VPC
<a name="pipes-perms-kafka-vpc"></a>

Jika hanya pengguna dalam VPC yang dapat mengakses cluster Apache Kafka yang dikelola sendiri, pipa Anda harus memiliki izin untuk mengakses sumber daya Amazon VPC Anda. Sumber daya ini termasuk VPC, subnet, grup keamanan, dan antarmuka jaringan. Untuk mengakses sumber daya ini, peran eksekusi pipa Anda harus memiliki izin berikut:
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)

## Izin peran eksekusi Amazon SQS
<a name="pipes-perms-sqs"></a>

Untuk Amazon SQS, EventBridge memerlukan izin berikut untuk mengelola sumber daya yang terkait dengan antrian Amazon SQS Anda. 
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html)

## Pengayaan dan izin target
<a name="pipes-perms-enhance-target"></a>

Untuk melakukan panggilan API pada sumber daya yang Anda miliki, EventBridge Pipes memerlukan izin yang sesuai. EventBridge Pipa menggunakan peran IAM yang Anda tentukan pada pipa untuk pengayaan dan panggilan target menggunakan prinsip IAM. `pipes.amazonaws.com` 

# Membuat EventBridge pipa Amazon
<a name="eb-pipes-create"></a>

EventBridge Pipes memungkinkan Anda membuat point-to-point integrasi antara sumber dan target, termasuk transformasi dan pengayaan acara lanjutan. 

Untuk membuat EventBridge pipa, Anda melakukan langkah-langkah berikut: 

1. [Menentukan sumber](#pipes-configure-source)

1. [Mengkonfigurasi penyaringan acara (opsional)](#pipes-configure-filtering)

1. [Mendefinisikan pengayaan acara (opsional)](#pipes-define-enrichment)

1. [Mengkonfigurasi target](#pipes-configure-target)

1. [Mengkonfigurasi pengaturan pipa](#pipes-configure-pipe-settings)

Untuk mengatur pipa sampel dengan cepat, lihat[Memulai: Buat EventBridge pipa Amazon](pipes-get-started.md). Topik ini digunakan CloudFormation untuk menyebarkan pipa dan sumber daya terkait, dan memandu Anda melalui ikhtisar kemampuan pipa.

*Untuk informasi tentang cara membuat pipa menggunakan CLI, lihat [create-pipe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/pipes/create-pipe.html) di AWS CLI Command Reference.AWS *

## Menentukan sumber
<a name="pipes-configure-source"></a>

Untuk memulai, tentukan sumber dari mana Anda ingin pipa menerima acara.

**Untuk menentukan sumber pipa dengan menggunakan konsol**

1. Buka EventBridge konsol Amazon di [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Pada panel navigasi, pilih **Pipa**.

1. Pilih **Buat pipa**.

1. Masukkan nama untuk pipa.

1. (Opsional) Tambahkan deskripsi untuk pipa.

1. Pada tab **Build pipe**, untuk **Source**, pilih jenis sumber yang ingin Anda tentukan untuk pipa ini, dan konfigurasikan sumbernya.

   Properti konfigurasi berbeda berdasarkan jenis sumber yang Anda pilih:

------
#### [ Confluent ]

**Untuk mengonfigurasi aliran Confluent Cloud sebagai sumber, dengan menggunakan konsol**

   1. Untuk **Sumber**, pilih **Confluent Cloud.**

   1. Untuk **server Bootstrap**, masukkan alamat `host:port` pasangan broker Anda.

   1. Untuk **nama Topik**, masukkan nama topik yang akan dibaca pipa.

   1. (Opsional) Untuk **VPC**, pilih VPC yang Anda inginkan. Kemudian, untuk subnet **VPC, pilih subnet** yang diinginkan. Untuk **grup keamanan VPC, pilih grup** keamanan.

   1. Untuk **Otentikasi - opsional**, aktifkan **Gunakan Otentikasi** dan lakukan hal berikut:

      1. Untuk **metode otentikasi**, pilih jenis otentikasi.

      1. Untuk **kunci Rahasia**, pilih kunci rahasia.

      Untuk informasi selengkapnya, lihat [Mengautentikasi ke sumber daya Confluent Cloud di dokumentasi](https://docs.confluent.io/cloud/current/access-management/authenticate/overview.html) Confluent.

   1. (Opsional) Untuk **pengaturan tambahan - opsional**, lakukan hal berikut:

      1. Untuk **posisi awal**, pilih salah satu dari berikut ini:
         + **Terbaru** - Mulailah membaca aliran dengan catatan terbaru di pecahan.
         + **Potong cakrawala** - Mulailah membaca aliran dengan catatan terakhir yang belum dipangkas di pecahan. Ini adalah rekor tertua di pecahan.

      1. Untuk **ukuran Batch - opsional**, masukkan jumlah maksimum catatan untuk setiap batch. Nilai default-nya adalah 100.

      1. Untuk **jendela Batch - opsional**, masukkan jumlah maksimum detik untuk mengumpulkan catatan sebelum melanjutkan.

------
#### [ DynamoDB ]

   1. Untuk **Sumber**, pilih **DynamoDB**.

   1. Untuk aliran **DynamoDB**, pilih aliran yang ingin Anda gunakan sebagai sumber.

   1. Untuk **posisi awal**, pilih salah satu dari berikut ini:
      + **Terbaru** - Mulailah membaca aliran dengan catatan terbaru di pecahan.
      + **Potong cakrawala** - Mulailah membaca aliran dengan catatan terakhir yang belum dipangkas di pecahan. Ini adalah rekor tertua di pecahan.

   1. (Opsional) Untuk **pengaturan tambahan - opsional**, lakukan hal berikut:

      1. Untuk **ukuran Batch - opsional**, masukkan jumlah maksimum catatan untuk setiap batch. Nilai default adalah 10.

      1. Untuk **jendela Batch - opsional**, masukkan jumlah maksimum detik untuk mengumpulkan catatan sebelum melanjutkan.

      1. Untuk **batch bersamaan per pecahan - opsional**, masukkan jumlah batch dari pecahan yang sama yang dapat dibaca pada saat yang sama.

      1. Untuk **Kegagalan item batch sebagian**, pilih yang berikut ini:
         + **AUTOMATIC\$1BISECT** — Potong dua setiap batch dan coba lagi setiap setengahnya sampai semua catatan diproses atau ada satu pesan gagal yang tersisa di batch.
**catatan**  
Jika Anda tidak memilih **AUTOMATIC\$1BISECT**, Anda dapat mengembalikan catatan gagal tertentu dan hanya yang dicoba ulang.

------
#### [ Kinesis ]

**Untuk mengkonfigurasi sumber Kinesis dengan menggunakan konsol**

   1. Untuk **Sumber**, pilih **Kinesis**.

   1. Untuk **aliran Kinesis**, pilih aliran yang ingin Anda gunakan sebagai sumber.

   1. Untuk **posisi awal**, pilih salah satu dari berikut ini:
      + **Terbaru** - Mulailah membaca aliran dengan catatan terbaru di pecahan.
      + **Potong cakrawala** - Mulailah membaca aliran dengan catatan terakhir yang belum dipangkas di pecahan. Ini adalah rekor tertua di pecahan.
      + **Pada stempel waktu** — Mulai membaca aliran dari waktu yang ditentukan. Di bawah **Timestamp**, masukkan data dan waktu menggunakan YYYY/MM/DD dan format hh: mm: ss.

   1. (Opsional) Untuk **pengaturan tambahan - opsional**, lakukan hal berikut:

      1. Untuk **ukuran Batch - opsional**, masukkan jumlah maksimum catatan untuk setiap batch. Nilai default adalah 10.

      1. (Opsional) Untuk **jendela Batch - opsional**, masukkan jumlah maksimum detik untuk mengumpulkan catatan sebelum melanjutkan.

      1. Untuk **batch bersamaan per pecahan - opsional**, masukkan jumlah batch dari pecahan yang sama yang dapat dibaca pada saat yang sama.

      1. Untuk **Kegagalan item batch sebagian**, pilih yang berikut ini:
         + **AUTOMATIC\$1BISECT** — Potong dua setiap batch dan coba lagi setiap setengahnya sampai semua catatan diproses atau ada satu pesan gagal yang tersisa di batch.
**catatan**  
Jika Anda tidak memilih **AUTOMATIC\$1BISECT**, Anda dapat mengembalikan catatan gagal tertentu dan hanya yang dicoba ulang.

------
#### [ Amazon MQ ]

**Untuk mengonfigurasi sumber Amazon MQ dengan menggunakan konsol**

   1. Untuk **Sumber**, pilih **Amazon MQ**.

   1. Untuk **broker Amazon MQ**, pilih aliran yang ingin Anda gunakan sebagai sumber.

   1. Untuk **nama Antrian**, masukkan nama antrian yang akan dibaca pipa.

   1. Untuk **Metode Otentikasi**, pilih **BASIC\$1AUTH**.

   1. Untuk **kunci Rahasia**, pilih kunci rahasia.

   1. (Opsional) Untuk **pengaturan tambahan - opsional**, lakukan hal berikut:

      1. Untuk **ukuran Batch - opsional**, masukkan jumlah maksimum pesan untuk setiap batch. Nilai default-nya adalah 100.

      1. Untuk **jendela Batch - opsional**, masukkan jumlah maksimum detik untuk mengumpulkan catatan sebelum melanjutkan.

------
#### [ Amazon MSK ]

**Untuk mengonfigurasi sumber MSK Amazon dengan menggunakan konsol**

   1. Untuk **Sumber**, pilih **Amazon MSK**.

   1. Untuk **Amazon MSK cluster**, pilih cluster yang ingin Anda gunakan.

   1. Untuk **nama Topik**, masukkan nama topik yang akan dibaca pipa.

   1. (Opsional) Untuk **ID Grup Konsumen - opsional**, masukkan ID grup konsumen yang Anda inginkan untuk bergabung dengan pipa.

   1. (Opsional) Untuk **Otentikasi - opsional**, aktifkan **Gunakan Otentikasi** dan lakukan hal berikut:

      1. Untuk **metode Otentikasi**, pilih jenis yang Anda inginkan.

      1. Untuk **kunci Rahasia**, pilih kunci rahasia.

   1. (Opsional) Untuk **pengaturan tambahan - opsional**, lakukan hal berikut:

      1. Untuk **ukuran Batch - opsional**, masukkan jumlah maksimum catatan untuk setiap batch. Nilai default-nya adalah 100.

      1. Untuk **jendela Batch - opsional**, masukkan jumlah maksimum detik untuk mengumpulkan catatan sebelum melanjutkan.

      1. Untuk **posisi awal**, pilih salah satu dari berikut ini:
         + **Terbaru** - Mulailah membaca topik dengan catatan terbaru di pecahan.
         + **Potong cakrawala** - Mulailah membaca topik dengan catatan terakhir yang belum dipangkas di pecahan. Ini adalah rekor tertua di pecahan.
**catatan**  
**Trim horizon** sama dengan **Earlyest** untuk Apache Kafka.

------
#### [ Self managed Apache Kafka ]

**Untuk mengonfigurasi sumber Apache Kafka yang dikelola sendiri dengan menggunakan konsol**

   1. Untuk **Sumber**, pilih **Apache Kafka yang dikelola sendiri**.

   1. Untuk **server Bootstrap**, masukkan alamat `host:port` pasangan broker Anda.

   1. Untuk **nama Topik**, masukkan nama topik yang akan dibaca pipa.

   1. (Opsional) Untuk **VPC**, pilih VPC yang Anda inginkan. Kemudian, untuk subnet **VPC, pilih subnet** yang diinginkan. Untuk **grup keamanan VPC, pilih grup** keamanan.

   1. (Opsional) Untuk **Otentikasi - opsional**, aktifkan **Gunakan Otentikasi** dan lakukan hal berikut:

      1. Untuk **metode otentikasi**, pilih jenis otentikasi.

      1. Untuk **kunci Rahasia**, pilih kunci rahasia.

   1. (Opsional) Untuk **pengaturan tambahan - opsional**, lakukan hal berikut:

      1. Untuk **posisi awal**, pilih salah satu dari berikut ini:
         + **Terbaru** - Mulailah membaca aliran dengan catatan terbaru di pecahan.
         + **Potong cakrawala** - Mulailah membaca aliran dengan catatan terakhir yang belum dipangkas di pecahan. Ini adalah rekor tertua di pecahan.

      1. Untuk **ukuran Batch - opsional**, masukkan jumlah maksimum catatan untuk setiap batch. Nilai default-nya adalah 100.

      1. Untuk **jendela Batch - opsional**, masukkan jumlah maksimum detik untuk mengumpulkan catatan sebelum melanjutkan.

------
#### [ Amazon SQS ]

**Untuk mengonfigurasi sumber Amazon SQS dengan menggunakan konsol**

   1. Untuk **Sumber**, pilih **SQS.**

   1. Untuk **antrian SQS**, pilih antrian yang ingin Anda gunakan.

   1. (Opsional) Untuk **pengaturan tambahan - opsional**, lakukan hal berikut:

      1. Untuk **ukuran Batch - opsional**, masukkan jumlah maksimum catatan untuk setiap batch. Nilai default-nya adalah 100.

      1. Untuk **jendela Batch - opsional**, masukkan jumlah maksimum detik untuk mengumpulkan catatan sebelum melanjutkan.

------

## Mengkonfigurasi penyaringan acara (opsional)
<a name="pipes-configure-filtering"></a>

Anda dapat menambahkan pemfilteran ke pipa Anda sehingga Anda hanya mengirim sebagian peristiwa dari sumber Anda ke target.

**Untuk mengkonfigurasi pemfilteran dengan menggunakan konsol**

1. Pilih **Penyaringan**.

1. Di bawah **Contoh acara - opsional**, Anda akan melihat contoh peristiwa yang dapat Anda gunakan untuk membangun pola acara Anda, atau Anda dapat memasukkan acara Anda sendiri dengan memilih **Enter your own**.

1. Di bawah **pola acara**, masukkan pola acara yang ingin Anda gunakan untuk memfilter peristiwa. Untuk informasi selengkapnya tentang membuat filter, lihat[Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

   Berikut ini adalah contoh pola peristiwa yang hanya mengirimkan peristiwa dengan nilai **Seattle** di bidang **City**.

   ```
   {
     "data": {
       "City": ["Seattle"]
     }
   }
   ```

Sekarang peristiwa sedang difilter, Anda dapat menambahkan pengayaan opsional dan target untuk pipa.

## Mendefinisikan pengayaan acara (opsional)
<a name="pipes-define-enrichment"></a>

Anda dapat mengirim data peristiwa untuk pengayaan ke fungsi Lambda, mesin AWS Step Functions status, Amazon API Gateway, atau tujuan API.

**Untuk memilih pengayaan**

1. Pilih **Pengayaan**.

1. Di bawah **Detail**, untuk **Layanan**, pilih layanan dan setelan terkait yang ingin Anda gunakan untuk pengayaan.

Anda juga dapat mengubah data sebelum mengirimnya untuk ditingkatkan.

**(Opsional) Untuk menentukan transformator input**

1. Pilih **Enrichment Input Transformer - opsional**.

1. Untuk ** events/Event Payload Sampel**, pilih jenis acara sampel.

1. Untuk **Transformer**, masukkan sintaks transformator, seperti `"Event happened at <$.detail.field>."` di mana `<$.detail.field>` adalah referensi ke bidang dari peristiwa sampel. Anda juga dapat mengklik dua kali bidang dari peristiwa sampel untuk menambahkannya ke transformator.

1. Untuk **Output**, verifikasi bahwa output terlihat seperti yang Anda inginkan.

Sekarang data telah disaring dan ditingkatkan, Anda harus menentukan target untuk mengirim data acara ke.

## Mengkonfigurasi target
<a name="pipes-configure-target"></a>

**Untuk mengkonfigurasi target**

1. Pilih **Target**.

1. Di bawah **Detail**, untuk **layanan Target**, pilih target. Bidang yang ditampilkan bervariasi tergantung pada target yang Anda pilih. Masukkan informasi khusus untuk jenis target ini, sesuai kebutuhan.

Anda juga dapat mengubah data sebelum mengirimnya ke target.

**(Opsional) Untuk menentukan transformator input**

1. Pilih **Target Input Transformer - opsional**.

1. Untuk ** events/Event Payload Sampel**, pilih jenis acara sampel.

1. Untuk **Transformer**, masukkan sintaks transformator, seperti `"Event happened at <$.detail.field>."` di mana `<$.detail.field>` adalah referensi ke bidang dari peristiwa sampel. Anda juga dapat mengklik dua kali bidang dari peristiwa sampel untuk menambahkannya ke transformator.

1. Untuk **Output**, verifikasi bahwa output terlihat seperti yang Anda inginkan.

Sekarang pipa dikonfigurasi, pastikan pengaturannya dikonfigurasi dengan benar.

## Mengkonfigurasi pengaturan pipa
<a name="pipes-configure-pipe-settings"></a>

Pipa aktif secara default, tetapi Anda dapat menonaktifkannya. Anda juga dapat menentukan izin pipa, mengatur logging pipa, dan menambahkan tag.

**Untuk mengkonfigurasi pengaturan pipa**

1. Pilih tab **Pengaturan pipa**.

1. Secara default, pipa yang baru dibuat aktif segera setelah dibuat. Jika Anda ingin membuat pipa tidak aktif, di bawah **Aktivasi**, untuk **Aktifkan pipa**, matikan **Aktif**.

1. Di bawah **Izin**, untuk **peran Eksekusi**, lakukan salah satu hal berikut:

   1. Untuk EventBridge membuat peran eksekusi baru untuk pipa ini, pilih **Buat peran baru untuk sumber daya khusus ini.** Di bawah **Nama peran**, Anda dapat mengedit nama peran secara opsional.

   1. Untuk menggunakan peran eksekusi yang ada, pilih **Gunakan peran yang ada**. Di bawah **Nama peran**, pilih peran.

1. (Opsional) Jika Anda telah menentukan DynamoDB aliran Kinesis atau sebagai sumber pipa, Anda dapat mengonfigurasi kebijakan coba lagi dan antrian huruf mati (DLQ).

   Untuk **kebijakan Coba lagi dan antrian Dead-letter - opsional**, lakukan hal berikut:

   Di bawah **kebijakan Coba Ulang**, lakukan hal berikut:

   1. Jika Anda ingin mengaktifkan kebijakan coba lagi, aktifkan Coba **lagi**. Secara default, pipa yang baru dibuat tidak mengaktifkan kebijakan coba lagi. 

   1. Untuk **Masa peristiwa maksimal**, masukkan nilai antara satu menit (00:01) dan 24 jam (24:00).

   1. Untuk **Upaya coba lagi**, masukkan angka antara 0 dan 185.

   1. Jika Anda ingin menggunakan antrian huruf mati (DLQ), aktifkan antrian **Dead-letter, pilih metode pilihan Anda, dan pilih antrian** atau topik yang ingin Anda gunakan. Secara default, pipa yang baru dibuat tidak menggunakan DLQ. 

1. Pilih KMS key EventBridge untuk digunakan saat mengenkripsi data pipa.

   Untuk informasi selengkapnya tentang cara EventBridge penggunaan KMS keys, lihat[Enkripsi saat diam](eb-data-protection.md#eb-encryption-at-rest).
   + Pilih **Gunakan Kunci milik AWS** EventBridge untuk mengenkripsi data menggunakan file Kunci milik AWS.

     Ini Kunci milik AWS adalah KMS key yang EventBridge memiliki dan mengelola untuk digunakan di beberapa AWS akun. Secara umum, kecuali Anda diminta untuk mengaudit atau mengontrol kunci enkripsi yang melindungi sumber daya Anda, a Kunci milik AWS adalah pilihan yang baik. 

     Ini adalah opsi default.
   + Pilih **Gunakan kunci yang dikelola pelanggan** EventBridge untuk mengenkripsi data menggunakan kunci yang dikelola pelanggan yang Anda tentukan atau buat.

     Kunci yang dikelola pelanggan ada KMS keys di AWS akun Anda yang Anda buat, miliki, dan kelola. Anda memiliki kendali penuh atas ini KMS keys.

     1. Tentukan yang sudah ada kunci yang dikelola pelanggan, atau pilih **Buat yang baru KMS key**.

       EventBridge menampilkan status kunci dan alias kunci apa pun yang telah dikaitkan dengan yang ditentukan kunci yang dikelola pelanggan.

1. (Opsional) Di bawah **Log - opsional**, Anda dapat mengatur cara EventBridge Pipes mengirimkan informasi pencatatan ke layanan yang didukung, termasuk cara mengonfigurasi log tersebut. 

   Untuk informasi selengkapnya tentang pencatatan pipa logging, lihat[Pencatatan kinerja Amazon EventBridge Pipes](eb-pipes-logs.md).

   CloudWatch log dipilih sebagai tujuan log secara default, seperti tingkat `ERROR` log. Jadi, secara default, EventBridge Pipes membuat grup CloudWatch log baru yang mengirimkan catatan log yang berisi `ERROR` tingkat detail.

   Agar EventBridge Pipes mengirim catatan log ke salah satu tujuan log yang didukung, lakukan hal berikut: 

   1. Di bawah **Log - opsional**, pilih tujuan yang ingin Anda kirimkan catatan log.

   1. Untuk **tingkat Log**, pilih tingkat informasi EventBridge untuk disertakan dalam catatan log. Tingkat `ERROR` log dipilih secara default.

      Untuk informasi selengkapnya, lihat [Menentukan tingkat log EventBridge Pipa](eb-pipes-logs.md#eb-pipes-logs-level).

   1. Pilih **Sertakan data eksekusi** jika Anda EventBridge ingin menyertakan informasi payload peristiwa dan permintaan layanan dan informasi respons dalam catatan log.

      Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

   1. Konfigurasikan setiap tujuan log yang Anda pilih:

      Untuk CloudWatch Logs log, di bawah **CloudWatch log** lakukan hal berikut:
      + Untuk **grup CloudWatch log**, pilih apakah akan EventBridge membuat grup log baru, atau Anda dapat memilih grup log yang ada atau menentukan ARN dari grup log yang ada.
      + Untuk grup log baru, edit nama grup log sesuai keinginan.

      CloudWatch log dipilih secara default.

      Untuk log Firehose aliran, di bawah **log Firehose aliran**, pilih Firehose aliran. 

      Untuk Amazon S3 log, di bawah **log S3** lakukan hal berikut:
      + Masukkan nama bucket untuk digunakan sebagai tujuan log.
      + Masukkan ID AWS akun pemilik bucket.
      + Masukkan teks awalan yang ingin Anda gunakan saat EventBridge membuat objek S3.

        Untuk informasi selengkapnya, lihat [Mengatur objek menggunakan awalan](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) di *Amazon Simple Storage Service Panduan Pengguna*.
      + Pilih bagaimana Anda ingin EventBridge memformat catatan log S3:
        + `json`: JSON 
        + `plain`: Teks biasa
        + `w3c`: Format [file logging diperpanjang W3C](https://www.w3.org/TR/WD-logfile)

1. (Opsional) Di bawah **Tag - opsional**, pilih **Tambahkan tag baru** dan masukkan satu atau beberapa tag untuk aturan. Untuk informasi selengkapnya, lihat [Menandai sumber daya di Amazon EventBridge](eb-tagging.md).

1. Pilih **Buat pipa**.

## Memvalidasi parameter konfigurasi
<a name="pipes-validation"></a>

Setelah pipa dibuat, EventBridge memvalidasi parameter konfigurasi berikut:
+ **Peran IAM** — Karena sumber pipa tidak dapat diubah setelah pipa dibuat, EventBridge memverifikasi bahwa peran IAM yang disediakan dapat mengakses sumbernya.
**catatan**  
EventBridge tidak melakukan validasi yang sama untuk pengayaan atau target karena dapat diperbarui setelah pipa dibuat.
+ **Batching** — EventBridge memvalidasi bahwa ukuran batch sumber tidak melebihi ukuran batch maksimum target. Jika ya, EventBridge membutuhkan ukuran batch yang lebih rendah. Selain itu, jika target tidak mendukung batching, Anda tidak dapat mengonfigurasi batching EventBridge untuk sumbernya.
+ **Pengayaan —** EventBridge memvalidasi bahwa ukuran batch untuk API Gateway dan pengayaan tujuan API adalah 1 karena hanya ukuran batch 1 yang didukung.

# Memulai atau menghentikan EventBridge pipa Amazon
<a name="pipes-start-stop"></a>

Secara default, pipa adalah `Running` dan memproses peristiwa saat dibuat.

Jika Anda membuat pipa dengan sumber Amazon SQS, Kinesis, atau DynamoDB, pembuatan pipa biasanya dapat memakan waktu satu atau dua menit.

Jika Anda membuat pipa dengan Amazon MSK, Apache Kafka yang dikelola sendiri, atau sumber Amazon MQ, pembuatan pipa dapat memakan waktu hingga sepuluh menit.

**Untuk membuat pipa tanpa memproses acara menggunakan konsol**
+ Matikan pengaturan **Aktifkan pipa**.

**Untuk membuat pipa tanpa memproses acara secara terprogram**
+ Dalam panggilan API Anda, setel `DesiredState` ke`Stopped`.

**Untuk memulai atau menghentikan pipa yang ada menggunakan konsol**
+ Pada tab **Pengaturan Pipa**, di bawah **Aktivasi**, untuk **Aktifkan pipa**, aktifkan atau matikan **Aktif**.

**Untuk memulai atau menghentikan pipa yang ada secara terprogram**
+ Dalam panggilan API Anda, setel `DesiredState` parameter ke salah satu `RUNNING` atau`STOPPED`.

Mungkin ada penundaan antara kapan pipa berada `STOPPED` dan kapan tidak lagi memproses peristiwa: 
+ Untuk Amazon SQS dan sumber streaming, penundaan ini biasanya kurang dari dua menit.
+ Untuk sumber Amazon MQ dan Apache Kafka, penundaan ini mungkin hingga lima belas menit.

# Sumber EventBridge Pipa Amazon
<a name="eb-pipes-event-source"></a>

EventBridge Pipes menerima data peristiwa dari berbagai sumber, menerapkan filter opsional dan pengayaan untuk data tersebut, dan mengirimkannya ke tujuan.

Jika sumber memberlakukan perintah untuk peristiwa yang dikirim ke EventBridge Pipes, pesanan itu dipertahankan selama seluruh proses ke tujuan.

 AWS Layanan berikut dapat ditentukan sebagai sumber untuk EventBridge Pipa:
+ [Aliran Amazon DynamoDB](eb-pipes-dynamodb.md)
+ [Aliran Amazon Kinesis](eb-pipes-kinesis.md)
+ [Pialang Amazon MQ](eb-pipes-mq.md)
+ [Aliran MSK Amazon](eb-pipes-msk.md)
+ [Antrian Amazon SQS](eb-pipes-sqs.md)
+ [Aliran Apache Kafka](eb-pipes-kafka.md)

  Saat Anda menentukan aliran Apache Kafka sebagai sumber pipa, Anda dapat menentukan aliran Apache Kafka yang Anda kelola sendiri, atau yang dikelola oleh penyedia pihak ketiga seperti:
  + [https://www.confluent.io/](https://www.confluent.io/)
  + [https://www.cloudkarafka.com/](https://www.cloudkarafka.com/)
  + [https://redpanda.com/](https://redpanda.com/)

# Amazon DynamoDB stream sebagai sumber Pipes EventBridge
<a name="eb-pipes-dynamodb"></a>

Anda dapat menggunakan EventBridge Pipes untuk menerima catatan dalam aliran DynamoDB. Anda kemudian dapat secara opsional memfilter atau menyempurnakan catatan ini sebelum mengirimnya ke target untuk diproses. Ada pengaturan khusus untuk Amazon DynamoDB Streams yang dapat Anda pilih saat mengatur pipa. EventBridge Pipes menjaga urutan catatan dari aliran data saat mengirim data tersebut ke tujuan.

**penting**  
Menonaktifkan aliran DynamoDB yang merupakan sumber pipa mengakibatkan pipa itu menjadi tidak dapat digunakan, bahkan jika Anda kemudian mengaktifkan kembali aliran tersebut. Ini terjadi karena:  
Anda tidak dapat menghentikan, memulai, atau memperbarui pipa yang sumbernya dinonaktifkan.
Anda tidak dapat memperbarui pipa dengan sumber baru setelah pembuatan. Saat Anda mengaktifkan kembali aliran DynamoDB, aliran tersebut diberi Nama Sumber Daya Amazon (ARN) baru, dan tidak lagi terkait dengan pipa Anda.
Jika Anda mengaktifkan kembali aliran DynamoDB, Anda kemudian perlu membuat pipa baru menggunakan ARN baru aliran.

**Contoh acara**

Contoh peristiwa berikut menunjukkan informasi yang diterima oleh pipa. Anda dapat menggunakan acara ini untuk membuat dan memfilter pola acara Anda, atau untuk menentukan transformasi input. Tidak semua bidang dapat disaring. Untuk informasi selengkapnya tentang bidang mana yang dapat Anda filter, lihat[Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

```
[
  {
    "eventID": "1",
    "eventVersion": "1.0",
    "dynamodb": {
      "Keys": {
        "Id": {
          "N": "101"
        }
      },
      "NewImage": {
        "Message": {
          "S": "New item!"
        },
        "Id": {
          "N": "101"
        }
      },
      "StreamViewType": "NEW_AND_OLD_IMAGES",
      "SequenceNumber": "111",
      "SizeBytes": 26
    },
    "awsRegion": "us-west-2",
    "eventName": "INSERT",
    "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable",
    "eventSource": "aws:dynamodb"
  },
  {
    "eventID": "2",
    "eventVersion": "1.0",
    "dynamodb": {
      "OldImage": {
        "Message": {
          "S": "New item!"
        },
        "Id": {
          "N": "101"
        }
      },
      "SequenceNumber": "222",
      "Keys": {
        "Id": {
          "N": "101"
        }
      },
      "SizeBytes": 59,
      "NewImage": {
        "Message": {
          "S": "This item has changed"
        },
        "Id": {
          "N": "101"
        }
      },
      "StreamViewType": "NEW_AND_OLD_IMAGES"
    },
    "awsRegion": "us-west-2",
    "eventName": "MODIFY",
    "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable",
    "eventSource": "aws:dynamodb"
  }
]
```

## Polling dan batching stream
<a name="pipes-ddb-polling"></a>

EventBridge polling pecahan di aliran DynamoDB Anda untuk catatan pada tingkat dasar empat kali per detik. Ketika catatan tersedia, EventBridge proses acara dan menunggu hasilnya. Jika pemrosesan berhasil, EventBridge lanjutkan pemungutan suara hingga menerima lebih banyak catatan.

Secara default, EventBridge panggil pipa Anda segera setelah catatan tersedia. Jika batch yang EventBridge membaca dari sumber hanya memiliki satu catatan di dalamnya, hanya satu peristiwa yang diproses. Untuk menghindari pemrosesan sejumlah kecil catatan, Anda dapat memberi tahu pipa untuk menyangga catatan hingga lima menit dengan mengonfigurasi jendela batching. Sebelum memproses peristiwa, EventBridge terus membaca catatan dari sumber hingga mengumpulkan batch penuh, jendela batching kedaluwarsa, atau batch mencapai batas muatan 6 MB.

**penting**  
Pipa akan mengirimkan catatan aliran dari DynamoDB ke Amazon SQS setidaknya sekali. Untuk memastikan tidak ada catatan yang dihapus, sebaiknya tetapkan kebijakan coba lagi dengan usia maksimum yang lebih pendek dari periode retensi aliran DynamoDB. Umumnya, aliran DynamoDB mempertahankan acara selama 24 jam.

Anda juga dapat meningkatkan konkurensi dengan memproses beberapa batch dari setiap pecahan secara paralel. EventBridge dapat memproses hingga 10 batch di setiap pecahan secara bersamaan. Jika Anda meningkatkan jumlah batch bersamaan per pecahan, EventBridge tetap memastikan pemrosesan dalam urutan pada tingkat kunci partisi.

Konfigurasikan `ParallelizationFactor` pengaturan untuk memproses satu pecahan aliran data Kinesis atau DynamoDB dengan lebih dari satu eksekusi Pipa secara bersamaan. Anda dapat menentukan jumlah batch bersamaan yang melakukan EventBridge polling dari pecahan melalui faktor paralelisasi dari 1 (default) hingga 10. Misalnya, ketika Anda menyetel `ParallelizationFactor` ke 2, Anda dapat memiliki 200 eksekusi EventBridge Pipa bersamaan maksimal untuk memproses 100 pecahan data Kinesis. Hal ini membantu meningkatkan skala throughput pemrosesan ketika volume data tidak stabil dan `IteratorAge` tinggi. Perhatikan bahwa faktor paralelisasi tidak akan berfungsi jika Anda menggunakan agregasi Kinesis. 

## Posisi awal polling dan streaming
<a name="pipes-ddb-stream-start-position"></a>

Ketahuilah bahwa polling sumber aliran selama pembuatan dan pembaruan pipa pada akhirnya konsisten.
+ Selama pembuatan pipa, mungkin perlu beberapa menit untuk memulai acara pemungutan suara dari aliran.
+ Selama pembaruan pipa ke konfigurasi pemungutan suara sumber, mungkin diperlukan beberapa menit untuk menghentikan dan memulai kembali acara pemungutan suara dari aliran. 

Ini berarti bahwa jika Anda menentukan `LATEST` sebagai posisi awal untuk aliran, pipa dapat melewatkan peristiwa yang dikirim selama pembuatan atau pembaruan pipa. Untuk memastikan tidak ada peristiwa yang terlewatkan, tentukan posisi awal aliran sebagai`TRIM_HORIZON`.

## Melaporkan kegagalan item batch
<a name="pipes-ddb-batch-failures"></a>

Saat EventBridge mengkonsumsi dan memproses streaming data dari suatu sumber, secara default ia memeriksa ke nomor urutan tertinggi dari batch, tetapi hanya ketika batch berhasil total. Untuk menghindari pemrosesan ulang pesan yang berhasil diproses dalam kumpulan yang gagal, Anda dapat mengonfigurasi pengayaan atau target untuk mengembalikan objek yang menunjukkan pesan mana yang berhasil dan mana yang gagal. Ini disebut respon batch paral.

Untuk informasi selengkapnya, lihat [Kegagalan batch sebagian](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Status berhasil dan gagal
<a name="pipes-ddb-batch-failures-conditions"></a>

Jika Anda mengembalikan salah satu dari yang berikut ini EventBridge , perlakukan batch sebagai kesuksesan total:
+ Daftar `batchItemFailure` kosong
+ Daftar `batchItemFailure` nol
+ `EventResponse` kosong
+ `EventResponse` nol

Jika Anda mengembalikan salah satu dari yang berikut ini, EventBridge memperlakukan batch sebagai kegagalan total:
+ String `itemIdentifier` kosong
+ `itemIdentifier` nol
+ `itemIdentifier` dengan nama kunci yang buruk

EventBridge mencoba kembali kegagalan berdasarkan strategi coba lagi Anda.

# Aliran Amazon Kinesis sebagai sumber Pipa EventBridge
<a name="eb-pipes-kinesis"></a>

Anda dapat menggunakan EventBridge Pipes untuk menerima catatan dalam aliran data Kinesis. Anda kemudian dapat secara opsional memfilter atau menyempurnakan catatan ini sebelum mengirimnya ke salah satu tujuan yang tersedia untuk diproses. Ada pengaturan khusus untuk Kinesis yang dapat Anda pilih saat mengatur pipa. EventBridge Pipes menjaga urutan catatan dari aliran data saat mengirim data tersebut ke tujuan.

Aliran data Kinesis adalah serangkaian [shard](https://docs.aws.amazon.com/kinesis/latest/dev/key-concepts.html#shard). Setiap shard berisi urutan rekaman data. **Konsumen** adalah aplikasi yang memproses data dari aliran data Kinesis. [Anda dapat memetakan EventBridge Pipe ke konsumen throughput bersama (iterator standar), atau ke konsumen throughput khusus dengan fan-out yang ditingkatkan.](https://docs.aws.amazon.com/kinesis/latest/dev/enhanced-consumers.html)

Untuk iterator standar, EventBridge gunakan protokol HTTP untuk polling setiap pecahan dalam aliran Kinesis Anda untuk catatan. Pipa berbagi throughput baca dengan konsumen pecahan lainnya.

Untuk meminimalkan latensi dan memaksimalkan throughput baca, Anda dapat membuat konsumen aliran data dengan keluaran yang ditingkatkan. Konsumen aliran mendapatkan koneksi khusus ke setiap shard yang tidak memengaruhi pembacaan aplikasi lain dari aliran tersebut. Throughput khusus dapat membantu jika Anda memiliki banyak aplikasi yang membaca data yang sama, atau jika Anda memproses ulang aliran dengan rekaman yang besar. Kinesis mendorong catatan ke lebih dari HTTP/2. EventBridge Untuk informasi tentang aliran data Kinesis, lihat [Membaca Data dari Amazon Kinesis Data Streams](https://docs.aws.amazon.com/kinesis/latest/dev/building-consumers.html).

**Contoh acara**

Contoh peristiwa berikut menunjukkan informasi yang diterima oleh pipa. Anda dapat menggunakan acara ini untuk membuat dan memfilter pola acara Anda, atau untuk menentukan transformasi input. Tidak semua bidang dapat disaring. Untuk informasi selengkapnya tentang bidang mana yang dapat Anda filter, lihat[Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

```
[
  {
    "kinesisSchemaVersion": "1.0",
    "partitionKey": "1",
    "sequenceNumber": "49590338271490256608559692538361571095921575989136588898",
    "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
    "approximateArrivalTimestamp": 1545084650.987,
    "eventSource": "aws:kinesis",
    "eventVersion": "1.0",
    "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898",
    "eventName": "aws:kinesis:record",
    "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role",
    "awsRegion": "us-east-2",
    "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream"
  },
  {
    "kinesisSchemaVersion": "1.0",
    "partitionKey": "1",
    "sequenceNumber": "49590338271490256608559692540925702759324208523137515618",
    "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=",
    "approximateArrivalTimestamp": 1545084711.166,
    "eventSource": "aws:kinesis",
    "eventVersion": "1.0",
    "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618",
    "eventName": "aws:kinesis:record",
    "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role",
    "awsRegion": "us-east-2",
    "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream"
  }
]
```

## Polling dan batching stream
<a name="pipes-ak-polling"></a>

EventBridge polling pecahan di aliran Kinesis Anda untuk catatan dengan kecepatan dasar sekali per detik. Ketika catatan tersedia, EventBridge proses acara dan menunggu hasilnya. Jika pemrosesan berhasil, EventBridge lanjutkan pemungutan suara hingga menerima lebih banyak catatan.

Secara default, EventBridge panggil pipa Anda segera setelah catatan tersedia. Jika batch yang EventBridge membaca dari sumber hanya memiliki satu catatan di dalamnya, hanya satu peristiwa yang diproses. Untuk menghindari pemrosesan sejumlah kecil catatan, Anda dapat memberi tahu pipa untuk menyangga catatan hingga lima menit dengan mengonfigurasi jendela batching. Sebelum memproses peristiwa, EventBridge terus membaca catatan dari sumber hingga mengumpulkan batch penuh, jendela batching kedaluwarsa, atau batch mencapai batas muatan 6 MB.

Anda juga dapat meningkatkan konkurensi dengan memproses beberapa batch dari setiap pecahan secara paralel. EventBridge dapat memproses hingga 10 batch di setiap pecahan secara bersamaan. Jika Anda meningkatkan jumlah batch bersamaan per pecahan, EventBridge tetap memastikan pemrosesan dalam urutan pada tingkat kunci partisi.

Konfigurasikan `ParallelizationFactor` pengaturan untuk memproses satu pecahan aliran data Kinesis atau DynamoDB dengan lebih dari satu eksekusi Pipa secara bersamaan. Anda dapat menentukan jumlah batch bersamaan yang melakukan EventBridge polling dari pecahan melalui faktor paralelisasi dari 1 (default) hingga 10. Misalnya, ketika Anda menyetel `ParallelizationFactor` ke 2, Anda dapat memiliki 200 eksekusi EventBridge Pipa bersamaan maksimal untuk memproses 100 pecahan data Kinesis. Hal ini membantu meningkatkan skala throughput pemrosesan ketika volume data tidak stabil dan `IteratorAge` tinggi. Perhatikan bahwa faktor paralelisasi tidak akan berfungsi jika Anda menggunakan agregasi Kinesis. 

## Posisi awal polling dan streaming
<a name="pipes-ak-stream-start-position"></a>

Ketahuilah bahwa polling sumber aliran selama pembuatan dan pembaruan pipa pada akhirnya konsisten.
+ Selama pembuatan pipa, mungkin perlu beberapa menit untuk memulai acara pemungutan suara dari aliran.
+ Selama pembaruan pipa ke konfigurasi pemungutan suara sumber, mungkin diperlukan beberapa menit untuk menghentikan dan memulai kembali acara pemungutan suara dari aliran. 

Ini berarti bahwa jika Anda menentukan `LATEST` sebagai posisi awal untuk aliran, pipa dapat melewatkan peristiwa yang dikirim selama pembuatan atau pembaruan pipa. Untuk memastikan tidak ada peristiwa yang terlewatkan, tentukan posisi awal aliran sebagai `TRIM_HORIZON` atau`AT_TIMESTAMP`.

## Melaporkan kegagalan item batch
<a name="pipes-ak-batch-failures"></a>

Saat EventBridge mengkonsumsi dan memproses streaming data dari suatu sumber, secara default ia memeriksa ke nomor urutan tertinggi dari batch, tetapi hanya ketika batch berhasil total. Untuk menghindari pemrosesan ulang pesan yang berhasil diproses dalam kumpulan yang gagal, Anda dapat mengonfigurasi pengayaan atau target untuk mengembalikan objek yang menunjukkan pesan mana yang berhasil dan mana yang gagal. Ini disebut respon batch paral.

Untuk informasi selengkapnya, lihat [Kegagalan batch sebagian](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Status berhasil dan gagal
<a name="pipes-ak-batch-failures-conditions"></a>

Jika Anda mengembalikan salah satu dari yang berikut ini EventBridge , perlakukan batch sebagai kesuksesan total:
+ Daftar `batchItemFailure` kosong
+ Daftar `batchItemFailure` nol
+ `EventResponse` kosong
+ `EventResponse` nol

Jika Anda mengembalikan salah satu dari yang berikut ini, EventBridge memperlakukan batch sebagai kegagalan total:
+ String `itemIdentifier` kosong
+ `itemIdentifier` nol
+ `itemIdentifier` dengan nama kunci yang buruk

EventBridge mencoba kembali kegagalan berdasarkan strategi coba lagi Anda.

# Broker pesan Amazon MQ sebagai sumber di Pipes EventBridge
<a name="eb-pipes-mq"></a>

Anda dapat menggunakan EventBridge Pipes untuk menerima catatan dari broker pesan Amazon MQ. Anda kemudian dapat secara opsional memfilter atau menyempurnakan catatan ini sebelum mengirimnya ke salah satu tujuan yang tersedia untuk diproses. Ada pengaturan khusus untuk Amazon MQ yang dapat Anda pilih saat menyiapkan pipa. EventBridge Pipes menjaga urutan catatan dari broker pesan saat mengirim data tersebut ke tujuan.

Amazon MQ adalah layanan broker pesan terkelola untuk [Apache ActiveMQ](https://activemq.apache.org/) dan [RabbitMQ](https://www.rabbitmq.com/). Broker pesan memungkinkan aplikasi dan komponen perangkat lunak untuk berkomunikasi menggunakan bahasa pemrograman yang berbeda, sistem operasi, dan protokol pesan formal dengan topik atau antrian sebagai tujuan acara.

Amazon MQ juga dapat mengelola instans Amazon Elastic Compute Cloud (Amazon EC2) atas nama Anda dengan menginstal broker ActiveMQ atau RabbitMQ. Setelah broker diinstal, ia menyediakan topologi jaringan yang berbeda dan kebutuhan infrastruktur lainnya untuk instans Anda.

Sumber Amazon MQ memiliki batasan konfigurasi berikut:
+ **Cross account** — EventBridge tidak mendukung pemrosesan lintas akun. Anda tidak dapat menggunakan EventBridge untuk memproses catatan dari broker pesan Amazon MQ yang ada di akun berbeda AWS .
+ **Otentikasi** [- Untuk ActiveMQ, hanya ActiveMQ yang didukung. SimpleAuthenticationPlugin](https://activemq.apache.org/security#simple-authentication-plugin) Untuk RabbitMQ, hanya mekanisme otentikasi [PLAIN](https://www.rabbitmq.com/access-control.html#mechanisms) yang didukung. Untuk mengelola kredensyal, gunakan. AWS Secrets Manager Untuk informasi selengkapnya tentang otentikasi ActiveMQ, lihat [Mengintegrasikan broker ActiveMQ dengan LDAP di Panduan Pengembang Amazon MQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-authentication-authorization.html).
+ **Kuota koneksi** — Broker memiliki jumlah maksimum koneksi yang diizinkan untuk setiap protokol tingkat kabel. Kuota ini didasarkan pada jenis instans broker. Untuk informasi selengkapnya, lihat bagian [Broker\$1Kuota](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-limits.html#broker-limits) **di Amazon MQ\$1 di** Panduan Pengembang Amazon MQ.
+ **Konektivitas** — Anda dapat membuat broker di cloud pribadi virtual publik atau pribadi (VPC). Untuk pribadi VPCs, pipa Anda memerlukan akses ke VPC untuk menerima pesan.
+ **Tujuan acara** - Hanya tujuan antrian yang didukung. Namun, Anda dapat menggunakan topik virtual, yang berperilaku baik sebagai topik internal maupun sebagai antrian eksternal ketika berinteraksi dengan pipa Anda. Untuk informasi lebih lanjut, lihat [Tujuan Virtual](https://activemq.apache.org/virtual-destinations) di situs web Apache ActiveMQ, [dan Host Virtual](https://www.rabbitmq.com/vhosts.html) di situs web RabbitMQ.
+ **Topologi jaringan - Untuk** ActiveMQ, hanya satu broker tunggal atau siaga yang didukung untuk pipa. Untuk RabbitMQ, hanya satu broker instans tunggal atau penerapan cluster yang didukung untuk setiap pipa. Broker instans tunggal memerlukan titik akhir failover. Untuk informasi selengkapnya tentang mode penyebaran broker ini, lihat Arsitektur Broker [MQ Aktif dan Arsitektur Broker](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-architecture.html) [MQ Kelinci di Panduan Pengembang](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/rabbitmq-broker-architecture.html) Amazon MQ.
+ **Protokol — Protokol** yang didukung bergantung pada integrasi Amazon MQ yang Anda gunakan.
  + Untuk integrasi ActiveMQ EventBridge , gunakan protokol Message Service (JMS) untuk menggunakan OpenWire/Java pesan. Konsumsi pesan tidak didukung pada protokol lain. EventBridge hanya mendukung `TextMessage` dan `BytesMessage` operasi dalam protokol JMS. Untuk informasi lebih lanjut tentang OpenWire protokol, lihat [OpenWire](https://activemq.apache.org/openwire.html)di situs web Apache ActiveMQ.
  + Untuk integrasi RabbitMQ, EventBridge gunakan protokol AMQP 0-9-1 untuk menggunakan pesan. Tidak ada protokol lain yang didukung untuk mengkonsumsi pesan. Untuk informasi lebih lanjut tentang implementasi protokol AMQP 0-9-1 RabbitMQ, lihat [AMQP 0-9-1 Panduan Referensi Lengkap di situs web RabbitMQ](https://www.rabbitmq.com/amqp-0-9-1-reference.html).

EventBridge secara otomatis mendukung versi terbaru ActiveMQ dan RabbitMQ yang didukung Amazon MQ. Untuk versi terbaru yang didukung, lihat [catatan rilis Amazon MQ di Panduan Pengembang](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-release-notes.html) Amazon MQ.

**catatan**  
Secara default, Amazon MQ memiliki jangka waktu pemeliharaan mingguan untuk broker. Selama jangka waktu tersebut, broker tidak tersedia. Untuk broker tanpa siaga, EventBridge tidak akan memproses pesan sampai jendela berakhir.

**Contoh peristiwa**

Contoh peristiwa berikut menunjukkan informasi yang diterima oleh pipa. Anda dapat menggunakan acara ini untuk membuat dan memfilter pola acara Anda, atau untuk menentukan transformasi input. Tidak semua bidang dapat disaring. Untuk informasi selengkapnya tentang bidang mana yang dapat Anda filter, lihat[Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

**ActiveMQ**

```
[
  {
    "eventSource": "aws:amq",
    "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8",    
    "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.govskope.ca-37557-1234520418293-4:1:1:1:1",
    "messageType": "jms/text-message",
    "data": "QUJDOkFBQUE=",
    "connectionId": "myJMSCoID",
    "redelivered": false,
    "destination": {
      "physicalname": "testQueue"
    },
    "timestamp": 1598827811958,
    "brokerInTime": 1598827811958,
    "brokerOutTime": 1598827811959
  },
  {
    "eventSource": "aws:amq",
    "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8",        
    "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.govskope.ca-37557-1234520418293-4:1:1:1:1",
    "messageType": "jms/bytes-message",
    "data": "3DTOOW7crj51prgVLQaGQ82S48k=",
    "connectionId": "myJMSCoID1",
    "persistent": false,
    "destination": {
      "physicalname": "testQueue"
    },
    "timestamp": 1598827811958,
    "brokerInTime": 1598827811958,
    "brokerOutTime": 1598827811959
  }
]
```

**RabbitMQ**

```
[
  {
    "eventSource": "aws:rmq",
    "eventSourceArn": "arn:aws:mq:us-west-2:111122223333:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8",
    "eventSourceKey": "pizzaQueue::/",
    "basicProperties": {
      "contentType": "text/plain",
      "contentEncoding": null,
      "headers": {
        "header1": {
          "bytes": [
            118,
            97,
            108,
            117,
            101,
            49
          ]
        },
        "header2": {
          "bytes": [
            118,
            97,
            108,
            117,
            101,
            50
          ]
        },
        "numberInHeader": 10
      },
      "deliveryMode": 1,
      "priority": 34,
      "correlationId": null,
      "replyTo": null,
      "expiration": "60000",
      "messageId": null,
      "timestamp": "Jan 1, 1970, 12:33:41 AM",
      "type": null,
      "userId": "AIDACKCEVSQ6C2EXAMPLE",
      "appId": null,
      "clusterId": null,
      "bodySize": 80
    },
    "redelivered": false,
    "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ=="
  }
]
```

## Kelompok konsumen
<a name="pipes-mq-consumer-group"></a>

Untuk berinteraksi dengan Amazon MQ, EventBridge buat grup konsumen yang dapat membaca dari broker MQ Amazon Anda. Grup konsumen dibuat dengan ID yang sama dengan pipa UUID.

Untuk sumber Amazon MQ, mengumpulkan EventBridge catatan bersama dan mengirimkannya ke fungsi Anda dalam satu muatan. Untuk mengontrol perilaku, Anda dapat mengonfigurasi jendela batching dan ukuran batch. EventBridge menarik pesan sampai salah satu hal berikut terjadi:
+ Catatan yang diproses mencapai ukuran muatan maksimum 6 MB.
+ Jendela batching kedaluwarsa.
+ Jumlah catatan mencapai ukuran batch penuh. 

EventBridge mengubah batch Anda menjadi satu payload dan kemudian memanggil fungsi Anda. Pesan tidak bertahan atau dideserialisasi. Sebaliknya, grup konsumen mengambilnya sebagai BLOB byte. Kemudian base64-mengkodekannya ke dalam muatan JSON. Jika pipa mengembalikan kesalahan untuk salah satu pesan dalam batch, EventBridge coba ulang seluruh kumpulan pesan hingga pemrosesan berhasil atau pesan kedaluwarsa.

## Konfigurasi jaringan
<a name="pipes-mq-vpc-config"></a>

Secara default, broker Amazon MQ dibuat dengan flag `PubliclyAccessible` yang ditetapkan ke false. Hanya ketika `PubliclyAccessible` diatur ke true bahwa broker menerima alamat IP publik. Untuk akses penuh dengan pipa Anda, broker Anda harus menggunakan titik akhir publik atau menyediakan akses ke VPC.

Jika broker Amazon MQ Anda tidak dapat diakses publik, EventBridge harus memiliki akses ke sumber daya Amazon Virtual Private Cloud (Amazon VPC) yang terkait dengan broker Anda.
+ Untuk mengakses VPC broker Amazon MQ Anda EventBridge , dapat menggunakan akses internet keluar untuk subnet sumber Anda. Untuk subnet publik ini harus menjadi gateway [NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) terkelola. Untuk subnet pribadi itu bisa menjadi gateway NAT, atau NAT Anda sendiri. Pastikan NAT memiliki alamat IP publik dan dapat terhubung ke internet.
+ EventBridge Pipes juga mendukung pengiriman acara melalui [AWS PrivateLink](https://aws.amazon.com/privatelink/), memungkinkan Anda untuk mengirim acara dari sumber acara yang terletak di Amazon Virtual Private Cloud (Amazon VPC) ke target Pipes tanpa melintasi internet publik. Anda dapat menggunakan Pipes untuk melakukan polling from Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka yang dikelola sendiri, dan Amazon MQ sumber yang berada di subnet pribadi tanpa perlu menggunakan gateway internet, mengonfigurasi aturan firewall, atau mengatur server proxy.

  *Untuk menyiapkan titik akhir VPC, lihat Membuat titik akhir [VPC di Panduan Pengguna](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).AWS PrivateLink * Untuk nama layanan, pilih`com.amazonaws.region.pipes-data`.

Konfigurasikan grup keamanan Amazon VPC Anda dengan aturan berikut (minimal):
+ Aturan masuk - Izinkan semua lalu lintas di port broker Amazon MQ untuk grup keamanan yang ditentukan untuk sumber Anda.
+ Aturan keluar - Izinkan semua lalu lintas di port 443 untuk semua tujuan. Izinkan semua lalu lintas di port broker Amazon MQ untuk grup keamanan yang ditentukan untuk sumber Anda.

  Port broker meliputi:
  + 9092 untuk plaintext
  + 9094 untuk TLS
  + 9096 untuk SASL
  + 9098 untuk IAM

**catatan**  
[Konfigurasi VPC Amazon Anda dapat ditemukan melalui Amazon MQ API.](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/resources.html) Anda tidak perlu mengkonfigurasinya selama pengaturan.

# Amazon Managed Streaming untuk topik Apache Kafka Kafka sebagai sumber di Pipes EventBridge
<a name="eb-pipes-msk"></a>

Anda dapat menggunakan EventBridge Pipes untuk menerima catatan dari topik [Amazon Managed Streaming for Apache Kafka (Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) MSK), termasuk dari jenis cluster [Amazon MSK Tanpa](https://aws.amazon.com/msk/features/msk-serverless/) Server. Anda dapat secara opsional memfilter atau menyempurnakan catatan ini sebelum mengirimnya ke salah satu tujuan yang tersedia untuk diproses. Ada pengaturan khusus untuk Amazon MSK yang dapat Anda pilih saat menyiapkan pipa. EventBridge Pipes menjaga urutan catatan dari broker pesan saat mengirim data tersebut ke tujuan.

Amazon MSK adalah layanan yang dikelola sepenuhnya yang dapat Anda gunakan untuk membangun dan menjalankan aplikasi yang menggunakan Apache Kafka untuk memproses data streaming. Amazon MSK menyederhanakan pengaturan, penskalaan, dan pengelolaan cluster yang menjalankan Apache Kafka. Dengan Amazon MSK, Anda dapat mengonfigurasi aplikasi Anda untuk beberapa Availability Zone dan untuk keamanan dengan AWS Identity and Access Management (IAM). Amazon MSK mendukung beberapa versi open-source Kafka.

Amazon MSK sebagai sumber beroperasi mirip dengan menggunakan Amazon Simple Queue Service (Amazon SQS) atau Amazon Kinesis. EventBridgepolling internal untuk pesan baru dari sumber dan kemudian secara sinkron memanggil target. EventBridge membaca pesan dalam batch dan menyediakannya ke fungsi Anda sebagai muatan acara. Ukuran batch maksimum dapat dikonfigurasi. (Default adalah 100 pesan.)

Untuk sumber berbasis Apache Kafka, EventBridge mendukung parameter kontrol pemrosesan, seperti jendela batching dan ukuran batch.

EventBridge membaca pesan secara berurutan untuk setiap partisi. Setelah EventBridge memproses setiap batch, ia melakukan offset pesan dalam batch itu. Jika target pipa mengembalikan kesalahan untuk salah satu pesan dalam batch, EventBridge coba ulang seluruh kumpulan pesan hingga pemrosesan berhasil atau pesan kedaluwarsa.

EventBridge mengirim kumpulan pesan dalam acara ketika memanggil target. Muatan peristiwa berisi array pesan. Setiap item array berisi detail dari topik Amazon MSK dan pengidentifikasi partisi, bersama-sama dengan stempel waktu dan pesan berkode base64.

**Contoh peristiwa**

Contoh peristiwa berikut menunjukkan informasi yang diterima oleh pipa. Anda dapat menggunakan acara ini untuk membuat dan memfilter pola acara Anda, atau untuk menentukan transformasi input. Tidak semua bidang dapat disaring. Untuk informasi selengkapnya tentang bidang mana yang dapat Anda filter, lihat[Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

```
[
  {
    "eventSource": "aws:kafka",
    "eventSourceArn": "arn:aws:kafka:sa-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2",    
    "eventSourceKey": "mytopic-0",
    "topic": "mytopic",
    "partition": "0",
    "offset": 15,
    "timestamp": 1545084650987,
    "timestampType": "CREATE_TIME",
    "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", 
    "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
    "headers": [
      {
        "headerKey": [
          104,
          101,
          97,
          100,
          101,
          114,
          86,
          97,
          108,
          117,
          101
        ]
      }
    ]
  }
]
```

## Posisi awal polling dan streaming
<a name="pipes-msk-stream-start-position"></a>

Ketahuilah bahwa polling sumber aliran selama pembuatan dan pembaruan pipa pada akhirnya konsisten.
+ Selama pembuatan pipa, mungkin perlu beberapa menit untuk memulai acara pemungutan suara dari aliran.
+ Selama pembaruan pipa ke konfigurasi pemungutan suara sumber, mungkin diperlukan beberapa menit untuk menghentikan dan memulai kembali acara pemungutan suara dari aliran. 

Ini berarti bahwa jika Anda menentukan `LATEST` sebagai posisi awal untuk aliran, pipa dapat melewatkan peristiwa yang dikirim selama pembuatan atau pembaruan pipa. Untuk memastikan tidak ada peristiwa yang terlewatkan, tentukan posisi awal aliran sebagai`TRIM_HORIZON`.

## Otentikasi kluster MSK
<a name="pipes-msk-cluster-permissions"></a>

EventBridge memerlukan izin untuk mengakses kluster MSK Amazon, mengambil catatan, dan melakukan tugas lainnya. Amazon MSK mendukung beberapa opsi untuk mengontrol akses klien ke cluster MSK. Untuk informasi selengkapnya tentang metode otentikasi yang digunakan saat, lihat[Bagaimana EventBridge memilih broker bootstrap](#pipes-msk-bootstrap-brokers).

**Topics**
+ [Akses tidak diautentikasi](#pipes-msk-permissions-none)
+ [Otentikasi SASL/SCRAM](#pipes-msk-permissions-add-secret)
+ [Autentikasi berbasis peran IAM](#pipes-msk-permissions-iam-policy)
+ [Autentikasi TLS bersama](#pipes-msk-permissions-mTLS)
+ [Mengkonfigurasi rahasia mTLS](#smaa-auth-secret)
+ [Bagaimana EventBridge memilih broker bootstrap](#pipes-msk-bootstrap-brokers)

### Akses tidak diautentikasi
<a name="pipes-msk-permissions-none"></a>

Kami merekomendasikan hanya menggunakan akses yang tidak diautentikasi untuk pengembangan. Akses yang tidak diautentikasi hanya akan berfungsi jika autentikasi berbasis peran IAM dinonaktifkan untuk cluster.

### Otentikasi SASL/SCRAM
<a name="pipes-msk-permissions-add-secret"></a>

Amazon MSK mendukung otentikasi Simple Authentication and Security Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM) dengan enkripsi Transport Layer Security (TLS). Untuk terhubung EventBridge ke klaster, Anda menyimpan kredensyal otentikasi (kredensyal masuk) secara rahasia. AWS Secrets Manager 

Untuk informasi selengkapnya tentang menggunakan Secrets Manager, lihat [Autentikasi nama pengguna dan kata sandi dengan AWS Secrets Manager](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html) di Panduan Pengembang *Amazon Managed Streaming for Apache* Kafka.

Amazon MSK tidak mendukung SASL/PLAIN otentikasi.

### Autentikasi berbasis peran IAM
<a name="pipes-msk-permissions-iam-policy"></a>

Anda dapat menggunakan IAM untuk mengautentikasi identitas klien yang terhubung ke cluster MSK. Jika autentikasi IAM aktif di kluster MSK Anda, dan Anda tidak memberikan rahasia untuk otentikasi, EventBridge secara otomatis default menggunakan otentikasi IAM. Untuk membuat dan menerapkan pengguna IAM atau kebijakan berbasis peran, gunakan konsol IAM atau API. Untuk informasi selengkapnya, lihat [Kontrol akses IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html) di Panduan Pengembang *Amazon Managed Streaming for Apache* Kafka Kafka.

Untuk memungkinkan terhubung EventBridge ke kluster MSK, membaca catatan, dan melakukan tindakan lain yang diperlukan, tambahkan izin berikut ke peran eksekusi pipa Anda.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:DescribeGroup",
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeTopic",
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeClusterDynamicConfiguration"
            ],
            "Resource": [
            "arn:aws:kafka:us-east-1:123456789012:cluster/cluster-name/cluster-uuid",
    "arn:aws:kafka:us-east-1:123456789012:topic/cluster-name/cluster-uuid/topic-name",
    "arn:aws:kafka:us-east-1:123456789012:group/cluster-name/cluster-uuid/consumer-group-id"
            ]
        }
    ]
}
```

------

Anda dapat membuat cakupan izin ini ke klaster, topik, dan grup tertentu. Untuk informasi selengkapnya, lihat [tindakan Amazon MSK Kafka](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html#kafka-actions) di Panduan Pengembang *Amazon Managed Streaming for Apache* Kafka.

### Autentikasi TLS bersama
<a name="pipes-msk-permissions-mTLS"></a>

Mutual TLS (mTLS) menyediakan otentikasi dua arah antara klien dan server. Klien mengirimkan sertifikat ke server untuk server untuk memverifikasi klien, dan server mengirimkan sertifikat ke klien untuk klien untuk memverifikasi server. 

Untuk Amazon MSK, EventBridge bertindak sebagai klien. Anda mengonfigurasi sertifikat klien (sebagai rahasia di Secrets Manager) untuk mengautentikasi EventBridge dengan broker di klaster MSK Anda. Sertifikat klien harus ditandatangani oleh otoritas sertifikat (CA) di toko kepercayaan server. Kluster MSK mengirimkan sertifikat server untuk EventBridge mengotentikasi broker dengan. EventBridge Sertifikat server harus ditandatangani oleh CA yang ada di toko AWS kepercayaan. 

Amazon MSK tidak mendukung sertifikat server yang ditandatangani sendiri, karena semua broker di Amazon MSK menggunakan [sertifikat publik](https://docs.aws.amazon.com/msk/latest/developerguide/msk-encryption.html) yang ditandatangani oleh [Amazon Trust Services CAs](https://www.amazontrust.com/repository/), yang EventBridge dipercaya secara default.



Untuk informasi selengkapnya tentang MTL untuk Amazon MSK, lihat [Mutual TLS Authentication di](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html) *Amazon Managed Streaming for Apache Kafka Developer Guide*.

### Mengkonfigurasi rahasia mTLS
<a name="smaa-auth-secret"></a>

Rahasia CLIENT\$1CERTIFICATE\$1TLS\$1AUTH memerlukan bidang sertifikat dan bidang kunci pribadi. Untuk kunci pribadi terenkripsi, rahasianya memerlukan kata sandi kunci pribadi. Baik sertifikat dan kunci pribadi harus dalam format PEM.

**catatan**  
EventBridge mendukung [PBES1](https://datatracker.ietf.org/doc/html/rfc2898/#section-6.1)(tetapi tidak PBES2) algoritma enkripsi kunci pribadi.

Bidang sertifikat harus berisi daftar sertifikat, dimulai dengan sertifikat klien, diikuti oleh sertifikat perantara, dan diakhiri dengan sertifikat root. Setiap sertifikat harus dimulai pada baris baru dengan struktur berikut:

```
-----BEGIN CERTIFICATE-----  
        <certificate contents>
-----END CERTIFICATE-----
```

Secrets Manager mendukung rahasia hingga 65.536 byte, yang merupakan ruang yang cukup untuk rantai sertifikat yang panjang.

Kunci pribadi harus dalam format [PKCS \$18](https://datatracker.ietf.org/doc/html/rfc5208), dengan struktur berikut:

```
-----BEGIN PRIVATE KEY-----  
         <private key contents>
-----END PRIVATE KEY-----
```

Untuk kunci pribadi terenkripsi, gunakan struktur berikut:

```
-----BEGIN ENCRYPTED PRIVATE KEY-----  
          <private key contents>
-----END ENCRYPTED PRIVATE KEY-----
```

Contoh berikut menunjukkan isi rahasia untuk otentikasi mTLS menggunakan kunci pribadi terenkripsi. Untuk kunci pribadi terenkripsi, Anda menyertakan kata sandi kunci pribadi dalam rahasia.

```
{
 "privateKeyPassword": "testpassword",
 "certificate": "-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw
...
j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk
cmUuiAii9R0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb
...
rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no
c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg==
-----END CERTIFICATE-----",
 "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp
...
QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ
zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA==
-----END ENCRYPTED PRIVATE KEY-----"
}
```

### Bagaimana EventBridge memilih broker bootstrap
<a name="pipes-msk-bootstrap-brokers"></a>

EventBridge memilih [broker bootstrap](https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html) berdasarkan metode otentikasi yang tersedia di cluster Anda, dan apakah Anda memberikan rahasia untuk otentikasi. Jika Anda memberikan rahasia untuk mTLS atau SASL/SCRAM, EventBridge secara otomatis memilih metode otentikasi itu. Jika Anda tidak memberikan rahasia, EventBridge pilih metode otentikasi terkuat yang aktif di cluster Anda. Berikut ini adalah urutan prioritas di mana EventBridge memilih broker, dari otentikasi terkuat hingga terlemah:
+ mTL (rahasia disediakan untuk mTL)
+ SASL/SCRAM (secret provided for SASL/SCRAM)
+ SASL IAM (tidak ada rahasia yang disediakan, dan otentikasi IAM aktif)
+ TLS yang tidak diautentikasi (tidak ada rahasia yang disediakan, dan otentikasi IAM tidak aktif)
+ Plaintext (tidak ada rahasia yang disediakan, dan otentikasi IAM dan TLS yang tidak diautentikasi tidak aktif)

**catatan**  
Jika tidak EventBridge dapat terhubung ke jenis broker yang paling aman, ia tidak mencoba untuk terhubung ke jenis broker yang berbeda (lebih lemah). Jika Anda EventBridge ingin memilih jenis broker yang lebih lemah, nonaktifkan semua metode otentikasi yang lebih kuat di cluster Anda.

## Konfigurasi jaringan
<a name="pipes-msk-vpc-config"></a>

EventBridge harus memiliki akses ke sumber daya Amazon Virtual Private Cloud (Amazon VPC) yang terkait dengan kluster MSK Amazon Anda.
+ Untuk mengakses VPC kluster MSK Amazon EventBridge Anda, dapat menggunakan akses internet keluar untuk subnet sumber Anda. Untuk subnet pribadi itu bisa menjadi gateway NAT, atau NAT Anda sendiri. Pastikan NAT memiliki alamat IP publik dan dapat terhubung ke internet. Untuk subnet publik Anda harus menggunakan VPC Endpoints (dijelaskan di bawah).
+ EventBridge Pipes juga mendukung pengiriman acara melalui [AWS PrivateLink](https://aws.amazon.com/privatelink/), memungkinkan Anda untuk mengirim acara dari sumber acara yang terletak di Amazon Virtual Private Cloud (Amazon VPC) ke target Pipes tanpa melintasi internet publik. Anda dapat menggunakan Pipes untuk melakukan polling from Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka yang dikelola sendiri, dan Amazon MQ sumber yang berada di subnet pribadi tanpa perlu menggunakan gateway internet, mengonfigurasi aturan firewall, atau mengatur server proxy. Anda juga dapat menggunakan VPC Endpoint untuk mendukung pengiriman dari cluster Kafka di subnet publik.

  *Untuk menyiapkan titik akhir VPC, lihat Membuat titik akhir [VPC di Panduan Pengguna](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).AWS PrivateLink * Untuk nama layanan, pilih`com.amazonaws.region.pipes-data`.

Konfigurasikan grup keamanan Amazon VPC Anda dengan aturan berikut (minimal):
+ Aturan masuk - Izinkan semua lalu lintas di port broker MSK Amazon untuk grup keamanan yang ditentukan untuk sumber Anda.
+ Aturan keluar - Izinkan semua lalu lintas di port 443 untuk semua tujuan. Izinkan semua lalu lintas di port broker MSK Amazon untuk grup keamanan yang ditentukan untuk sumber Anda.

  Port broker meliputi:
  + 9092 untuk plaintext
  + 9094 untuk TLS
  + 9096 untuk SASL
  + 9098 untuk IAM

**catatan**  
[Konfigurasi VPC Amazon Anda dapat ditemukan melalui Amazon MSK API.](https://docs.aws.amazon.com/msk/1.0/apireference/resources.html) Anda tidak perlu mengkonfigurasinya selama pengaturan.

## ID grup konsumen yang dapat disesuaikan
<a name="pipes-msk-consumer-group"></a>

Saat mengatur Apache Kafka sebagai sumber, Anda dapat menentukan ID grup konsumen. ID grup konsumen ini adalah pengenal yang ada untuk grup konsumen Apache Kafka yang Anda inginkan untuk bergabung dengan pipa Anda. Anda dapat menggunakan fitur ini untuk memigrasikan pengaturan pemrosesan catatan Apache Kafka yang sedang berlangsung dari konsumen lain ke. EventBridge

Jika Anda menentukan ID grup konsumen dan ada poller aktif lainnya dalam grup konsumen tersebut, Apache Kafka mendistribusikan pesan ke semua konsumen. Dengan kata lain, EventBridge tidak menerima semua pesan untuk topik Apache Kafka. Jika Anda EventBridge ingin menangani semua pesan dalam topik, matikan poller lain di grup konsumen tersebut.

Selain itu, jika Anda menentukan ID grup konsumen, dan Apache Kafka menemukan grup konsumen yang sudah ada dengan ID yang sama, EventBridge mengabaikan `StartingPosition` parameter untuk pipa Anda. Sebaliknya, EventBridge mulailah memproses catatan sesuai dengan offset yang dilakukan dari kelompok konsumen. Jika Anda menentukan ID grup konsumen, dan Apache Kafka tidak dapat menemukan grup konsumen yang ada, maka EventBridge konfigurasikan sumber Anda dengan yang ditentukan. `StartingPosition`

ID grup konsumen yang Anda tentukan harus unik di antara semua sumber acara Apache Kafka Anda. Setelah membuat pipa dengan ID grup konsumen yang ditentukan, Anda tidak dapat memperbarui nilai ini.

## Penskalaan otomatis dari sumber MSK Amazon
<a name="pipes-msk-ops-scaling"></a>

Saat Anda awalnya membuat sumber MSK Amazon, EventBridge alokasikan satu konsumen untuk memproses semua partisi dalam topik Apache Kafka. Setiap konsumen memiliki beberapa prosesor yang berjalan secara paralel untuk menangani peningkatan beban kerja. Selain itu, EventBridge secara otomatis meningkatkan atau menurunkan jumlah konsumen, berdasarkan beban kerja. Untuk mempertahankan pemesanan pesan di setiap partisi, jumlah maksimum konsumen adalah satu konsumen per partisi dalam topik.

Dalam interval satu menit, EventBridge mengevaluasi lag offset konsumen dari semua partisi dalam topik. Jika lag terlalu tinggi, partisi menerima pesan lebih cepat daripada yang EventBridge dapat memprosesnya. Jika perlu, EventBridge menambah atau menghapus konsumen dari topik. Proses penskalaan penambahan atau penghapusan konsumen terjadi dalam waktu tiga menit setelah evaluasi.

Jika target Anda kelebihan beban, EventBridge kurangi jumlah konsumen. Tindakan ini mengurangi beban kerja pada pipa dengan mengurangi jumlah pesan yang dapat diambil dan dikirim konsumen ke pipa.

# Apache Kafka mengalir sebagai sumber di Pipes EventBridge
<a name="eb-pipes-kafka"></a>

Apache Kafka adalah platform streaming acara open-source yang mendukung beban kerja seperti saluran data dan analitik streaming. Anda dapat menggunakan [Amazon Managed Streaming for Apache](eb-pipes-msk.md) Kafka (Amazon MSK), atau cluster Apache Kafka yang dikelola sendiri. Dalam AWS terminologi, cluster yang *dikelola sendiri* mengacu pada cluster Apache Kafka yang tidak di-host oleh. AWS Ini termasuk kedua cluster yang Anda kelola sendiri, serta yang dihosting oleh penyedia pihak ketiga, seperti [https://www.confluent.io/](https://www.confluent.io/), [https://www.cloudkarafka.com/](https://www.cloudkarafka.com/), atau [https://redpanda.com/](https://redpanda.com/).

Untuk informasi selengkapnya tentang opsi AWS hosting lain untuk klaster Anda, lihat [Praktik Terbaik untuk Menjalankan Apache Kafka AWS di](https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-kafka-on-aws/) Blog *AWS Big Data*.

Apache Kafka sebagai sumber beroperasi mirip dengan menggunakan Amazon Simple Queue Service (Amazon SQS) atau Amazon Kinesis. EventBridgepolling internal untuk pesan baru dari sumber dan kemudian secara sinkron memanggil target. EventBridge membaca pesan dalam batch dan menyediakannya ke fungsi Anda sebagai muatan acara. Ukuran batch maksimum dapat dikonfigurasi. (Default adalah 100 pesan.)

Untuk sumber berbasis Apache Kafka, EventBridge mendukung parameter kontrol pemrosesan, seperti jendela batching dan ukuran batch.

EventBridge mengirimkan kumpulan pesan dalam parameter acara saat memanggil pipa Anda. Muatan peristiwa berisi array pesan. Setiap item array berisi rincian topik Apache Kafka dan pengidentifikasi partisi Apache Kafka, bersama dengan stempel waktu dan pesan yang dikodekan base64.

**Contoh peristiwa**

Contoh peristiwa berikut menunjukkan informasi yang diterima oleh pipa. Anda dapat menggunakan acara ini untuk membuat dan memfilter pola acara Anda, atau untuk menentukan transformasi input. Tidak semua bidang dapat disaring. Untuk informasi selengkapnya tentang bidang mana yang dapat Anda filter, lihat[Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

```
[
  {
    "eventSource": "SelfManagedKafka",
    "bootstrapServers": "b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092",
    "eventSourceKey": "mytopic-0",
    "topic": "mytopic",
    "partition": 0,
    "offset": 15,
    "timestamp": 1545084650987,
    "timestampType": "CREATE_TIME",
    "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", 
    "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
    "headers": [
      {
        "headerKey": [
          104,
          101,
          97,
          100,
          101,
          114,
          86,
          97,
          108,
          117,
          101
        ]
      }
    ]
  }
]
```

## Autentikasi kluster Apache Kafka
<a name="pipes-smaa-authentication"></a>

EventBridge Pipes mendukung beberapa metode untuk mengautentikasi dengan cluster Apache Kafka yang dikelola sendiri. Pastikan Anda mengonfigurasi cluster Apache Kafka untuk menggunakan salah satu metode otentikasi yang didukung ini. Untuk informasi lebih lanjut tentang keamanan Apache Kafka, lihat bagian [Keamanan](http://kafka.apache.org/documentation.html#security) dari dokumentasi Apache Kafka.

### Akses VPC
<a name="pipes-smaa-auth-vpc"></a>

Jika Anda menggunakan lingkungan Apache Kafka yang dikelola sendiri di mana hanya pengguna Apache Kafka dalam VPC Anda yang memiliki akses ke broker Apache Kafka Anda, Anda harus mengonfigurasi Amazon Virtual Private Cloud (Amazon VPC) di sumber Apache Kafka. 

### Otentikasi SASL/SCRAM
<a name="pipes-smaa-auth-sasl"></a>

EventBridge Pipes mendukung Otentikasi Sederhana dan Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM) authentication with Transport Layer Security (TLS) encryption. EventBridge Pipes sends the encrypted credentials to authenticate with the cluster. For more information about SASL/SCRAM otentikasi Keamanan, lihat [RFC](https://tools.ietf.org/html/rfc5802) 5802.

EventBridge Pipes mendukung SASL/PLAIN authentication with TLS encryption. With SASL/PLAIN otentikasi, EventBridge Pipes mengirimkan kredensyal sebagai teks yang jelas (tidak terenkripsi) ke server.

Untuk autentikasi SASL, Anda menyimpan kredensyal masuk sebagai rahasia. AWS Secrets Manager

### Otentikasi TLS timbal balik
<a name="pipes-smaa-auth-mtls"></a>

Mutual TLS (mTLS) menyediakan otentikasi dua arah antara klien dan server. Klien mengirimkan sertifikat ke server untuk server untuk memverifikasi klien, dan server mengirimkan sertifikat ke klien untuk klien untuk memverifikasi server. 

Dalam Apache Kafka yang dikelola sendiri, EventBridge Pipes bertindak sebagai klien. Anda mengonfigurasi sertifikat klien (sebagai rahasia di Secrets Manager) untuk mengautentikasi EventBridge Pipes dengan broker Apache Kafka Anda. Sertifikat klien harus ditandatangani oleh otoritas sertifikat (CA) di toko kepercayaan server.

Cluster Apache Kafka mengirimkan sertifikat server ke EventBridge Pipes untuk mengotentikasi broker Apache Kafka dengan Pipes. EventBridge Sertifikat server dapat berupa sertifikat CA publik atau sertifikat CA/self-signed certificate. The public CA certificate must be signed by a CA that's in the EventBridge Pipes trust store. For a private CA/self yang ditandatangani pribadi, Anda mengonfigurasi sertifikat CA root server (sebagai rahasia di Secrets Manager). EventBridge Pipes menggunakan sertifikat root untuk memverifikasi broker Apache Kafka.

Untuk informasi selengkapnya tentang mTL, lihat [Memperkenalkan otentikasi TLS timbal balik untuk Amazon MSK](https://aws.amazon.com/blogs/compute/introducing-mutual-tls-authentication-for-amazon-msk-as-an-event-source) sebagai sumber.

### Mengkonfigurasi rahasia sertifikat klien
<a name="pipes-smaa-auth-secret"></a>

Rahasia CLIENT\$1CERTIFICATE\$1TLS\$1AUTH memerlukan bidang sertifikat dan bidang kunci pribadi. Untuk kunci pribadi terenkripsi, rahasianya memerlukan kata sandi kunci pribadi. Baik sertifikat dan kunci pribadi harus dalam format PEM.

**catatan**  
EventBridge Pipa mendukung [PBES1](https://datatracker.ietf.org/doc/html/rfc2898/#section-6.1)(tetapi tidak PBES2) algoritma enkripsi kunci pribadi.

Bidang sertifikat harus berisi daftar sertifikat, dimulai dengan sertifikat klien, diikuti oleh sertifikat perantara, dan diakhiri dengan sertifikat root. Setiap sertifikat harus dimulai pada baris baru dengan struktur berikut:

```
-----BEGIN CERTIFICATE-----  
        <certificate contents>
-----END CERTIFICATE-----
```

Secrets Manager mendukung rahasia hingga 65.536 byte, yang merupakan ruang yang cukup untuk rantai sertifikat yang panjang.

Kunci pribadi harus dalam format [PKCS \$18](https://datatracker.ietf.org/doc/html/rfc5208), dengan struktur berikut:

```
-----BEGIN PRIVATE KEY-----  
         <private key contents>
-----END PRIVATE KEY-----
```

Untuk kunci pribadi terenkripsi, gunakan struktur berikut:

```
-----BEGIN ENCRYPTED PRIVATE KEY-----  
          <private key contents>
-----END ENCRYPTED PRIVATE KEY-----
```

Contoh berikut menunjukkan isi rahasia untuk otentikasi mTLS menggunakan kunci pribadi terenkripsi. Untuk kunci pribadi terenkripsi, sertakan kata sandi kunci pribadi dalam rahasia.

```
{
 "privateKeyPassword": "testpassword",
 "certificate": "-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw
...
j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk
cmUuiAii9R0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb
...
rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no
c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg==
-----END CERTIFICATE-----",
 "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp
...
QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ
zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA==
-----END ENCRYPTED PRIVATE KEY-----"
}
```

### Mengkonfigurasi rahasia sertifikat CA root server
<a name="pipes-smaa-auth-ca-cert"></a>

Anda membuat rahasia ini jika broker Apache Kafka Anda menggunakan enkripsi TLS dengan sertifikat yang ditandatangani oleh CA pribadi. Anda dapat menggunakan enkripsi TLS untuk VPCSASL/SCRAM, SASL/PLAIN,, atau otentikasi mTLS.

Rahasia sertifikat CA root server memerlukan bidang yang berisi sertifikat root CA broker Apache Kafka dalam format PEM. Contoh berikut menunjukkan struktur rahasia.

```
{
     "certificate": "-----BEGIN CERTIFICATE-----       
  MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
  EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
  HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
  ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dG...
  -----END CERTIFICATE-----"
```

## Konfigurasi jaringan
<a name="pipes-kafka-vpc-config"></a>

Jika Anda menggunakan lingkungan Apache Kafka yang dikelola sendiri yang menggunakan konektivitas VPC pribadi, EventBridge harus memiliki akses ke sumber daya Amazon Virtual Private Cloud (Amazon VPC) yang terkait dengan broker Apache Kafka Anda. 
+ Untuk mengakses VPC cluster Apache Kafka Anda, EventBridge dapat menggunakan akses internet outbound untuk subnet sumber Anda. Untuk subnet pribadi itu bisa menjadi gateway NAT, atau NAT Anda sendiri. Pastikan NAT memiliki alamat IP publik dan dapat terhubung ke internet. Untuk subnet publik Anda harus menggunakan VPC Endpoints (dijelaskan di bawah).
+ EventBridge Pipes juga mendukung pengiriman acara melalui [AWS PrivateLink](https://aws.amazon.com/privatelink/), memungkinkan Anda untuk mengirim acara dari sumber acara yang terletak di Amazon Virtual Private Cloud (Amazon VPC) ke target Pipes tanpa melintasi internet publik. Anda dapat menggunakan Pipes untuk melakukan polling from Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka yang dikelola sendiri, dan Amazon MQ sumber yang berada di subnet pribadi tanpa perlu menggunakan gateway internet, mengonfigurasi aturan firewall, atau mengatur server proxy. Anda juga dapat menggunakan VPC Endpoint untuk mendukung pengiriman dari cluster Kafka di subnet publik.

  *Untuk menyiapkan titik akhir VPC, lihat Membuat titik akhir [VPC di Panduan Pengguna](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).AWS PrivateLink * Untuk nama layanan, pilih`com.amazonaws.region.pipes-data`.

Konfigurasikan grup keamanan Amazon VPC Anda dengan aturan berikut (minimal):
+ Aturan masuk - Izinkan semua lalu lintas di port broker Apache Kafka untuk grup keamanan yang ditentukan untuk sumber Anda.
+ Aturan keluar - Izinkan semua lalu lintas di port 443 untuk semua tujuan. Izinkan semua lalu lintas di port broker Apache Kafka untuk grup keamanan yang ditentukan untuk sumber Anda.

  Port broker meliputi:
  + 9092 untuk plaintext
  + 9094 untuk TLS
  + 9096 untuk SASL
  + 9098 untuk IAM

## Penskalaan otomatis konsumen dengan sumber Apache Kafka
<a name="pipes-kafka-ops-scaling"></a>

Saat Anda awalnya membuat sumber Apache Kafka, EventBridge alokasikan satu konsumen untuk memproses semua partisi dalam topik Kafka. Setiap konsumen memiliki beberapa prosesor yang berjalan secara paralel untuk menangani peningkatan beban kerja. Selain itu, EventBridge secara otomatis meningkatkan atau menurunkan jumlah konsumen, berdasarkan beban kerja. Untuk mempertahankan pemesanan pesan di setiap partisi, jumlah maksimum konsumen adalah satu konsumen per partisi dalam topik.

Dalam interval satu menit, EventBridge mengevaluasi lag offset konsumen dari semua partisi dalam topik. Jika lag terlalu tinggi, partisi menerima pesan lebih cepat daripada yang EventBridge dapat memprosesnya. Jika perlu, EventBridge menambah atau menghapus konsumen dari topik. Proses penskalaan penambahan atau penghapusan konsumen terjadi dalam waktu tiga menit setelah evaluasi.

Jika target Anda kelebihan beban, EventBridge kurangi jumlah konsumen. Tindakan ini mengurangi beban kerja pada fungsi dengan mengurangi jumlah pesan yang dapat konsumen ambil dan kirim ke fungsi.

# Amazon Simple Queue Service sebagai sumber di Pipes EventBridge
<a name="eb-pipes-sqs"></a>

Anda dapat menggunakan EventBridge Pipes untuk menerima catatan dari antrian Amazon SQS. Anda kemudian dapat secara opsional memfilter atau menyempurnakan catatan ini sebelum mengirimnya ke tujuan yang tersedia untuk diproses.

Anda dapat menggunakan pipa untuk memproses pesan dalam antrean Amazon Simple Queue Service (Amazon SQS). EventBridge Pipa mendukung [antrian standar dan antrian](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/standard-queues.html) [first-in, first-out (](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html)FIFO). Dengan Amazon SQS, Anda dapat memindahkan tugas dari satu komponen aplikasi Anda dengan mengirimkannya ke antrean dan memprosesnya secara asinkron.

EventBridge polling antrian dan memanggil pipa Anda secara serempak dengan acara yang berisi pesan antrian. EventBridge membaca pesan dalam batch dan memanggil pipa Anda sekali untuk setiap batch. Ketika pipa Anda berhasil memproses batch, EventBridge menghapus pesannya dari antrian.

Secara default, EventBridge polling hingga 10 pesan dalam antrian Anda secara bersamaan dan mengirimkan batch itu ke pipa Anda. Untuk menghindari pemanggilan pipa dengan sejumlah kecil catatan, Anda dapat memberi tahu sumber acara untuk menyangga catatan hingga lima menit dengan mengonfigurasi jendela batch. Sebelum menjalankan pipa, EventBridge terus polling pesan dari antrian standar Amazon SQS hingga salah satu hal ini terjadi:
+ Jendela batch kedaluwarsa.
+ Kuota ukuran payload doa tercapai.
+ Ukuran batch maksimum yang dikonfigurasi tercapai.

**catatan**  
Jika Anda menggunakan jendela batch dan antrean Amazon SQS berisi lalu lintas rendah, EventBridge mungkin menunggu hingga 20 detik sebelum menjalankan pipa Anda. Ini benar bahkan jika Anda mengatur jendela batch kurang dari 20 detik. Untuk antrean FIFO, rekaman berisi atribut tambahan yang terkait dengan deduplikasi dan pengurutan.

Saat EventBridge membaca batch, pesan tetap berada dalam antrean tetapi disembunyikan selama batas waktu [visibilitas](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) antrian. Jika pipa Anda berhasil memproses batch, EventBridge hapus pesan dari antrian. Secara default, jika pipa Anda mengalami kesalahan saat memproses batch, semua pesan dalam batch tersebut akan terlihat dalam antrian lagi. Untuk alasan ini, kode pipa Anda harus dapat memproses pesan yang sama beberapa kali tanpa efek samping yang tidak diinginkan. Anda dapat memodifikasi perilaku pemrosesan ulang ini dengan menyertakan kegagalan item batch dalam respons pipa Anda. Contoh berikut menunjukkan kejadian untuk batch yang berisi dua pesan.

**Contoh peristiwa**

Contoh peristiwa berikut menunjukkan informasi yang diterima oleh pipa. Anda dapat menggunakan acara ini untuk membuat dan memfilter pola acara Anda, atau untuk menentukan transformasi input. Tidak semua bidang dapat disaring. Untuk informasi selengkapnya tentang bidang mana yang dapat Anda filter, lihat[Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).

**Antrian standar**

```
[
  {
    "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d",
    "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...",
    "body": "Test message.",
    "attributes": {
      "ApproximateReceiveCount": "1",
      "SentTimestamp": "1545082649183",
      "SenderId": "AIDAIENQZJOLO23YVJ4VO",
      "ApproximateFirstReceiveTimestamp": "1545082649185"
    },
    "messageAttributes": {},
    "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue",
    "awsRegion": "us-east-2"
  },
  {
    "messageId": "2e1424d4-f796-459a-8184-9c92662be6da",
    "receiptHandle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...",
    "body": "Test message.",
    "attributes": {
      "ApproximateReceiveCount": "1",
      "SentTimestamp": "1545082650636",
      "SenderId": "AIDAIENQZJOLO23YVJ4VO",
      "ApproximateFirstReceiveTimestamp": "1545082650649"
    },
    "messageAttributes": {},
    "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue",
    "awsRegion": "us-east-2"
  }
]
```

**Antrian FIFO**

```
[
  {
    "messageId": "11d6ee51-4cc7-4302-9e22-7cd8afdaadf5",
    "receiptHandle": "AQEBBX8nesZEXmkhsmZeyIE8iQAMig7qw...",
    "body": "Test message.",
    "attributes": {
      "ApproximateReceiveCount": "1",
      "SentTimestamp": "1573251510774",
      "SequenceNumber": "18849496460467696128",
      "MessageGroupId": "1",
      "SenderId": "AIDAIO23YVJENQZJOL4VO",
      "MessageDeduplicationId": "1",
      "ApproximateFirstReceiveTimestamp": "1573251510774"
    },
    "messageAttributes": {},
    "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:fifo.fifo",
    "awsRegion": "us-east-2"
  }
]
```

## Penskalaan dan pemrosesan
<a name="pipes-sqs-scaling"></a>

Untuk antrian standar, EventBridge gunakan polling [panjang untuk polling](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html) antrian hingga menjadi aktif. Ketika pesan tersedia, EventBridge baca hingga lima batch dan kirimkan ke pipa Anda. Jika pesan masih tersedia, EventBridge tingkatkan jumlah proses yang membaca batch hingga 300 instance lagi per menit. Jumlah maksimum batch yang dapat diproses pipa secara bersamaan adalah 1.000.

Untuk antrian FIFO, EventBridge kirim pesan ke pipa Anda dalam urutan yang diterimanya. Saat Anda mengirimkan pesan ke antrean FIFO, Anda menentukan [ID grup pesan](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html). Amazon SQS memfasilitasi pengiriman pesan dalam grup yang sama ke EventBridge, secara berurutan. EventBridge mengurutkan pesan yang diterima ke dalam grup dan mengirim hanya satu batch pada satu waktu untuk grup. Jika pipa Anda mengembalikan kesalahan, pipa mencoba semua percobaan ulang pada pesan yang terpengaruh sebelum EventBridge menerima pesan tambahan dari grup yang sama.

## Mengkonfigurasi antrian untuk digunakan dengan Pipes EventBridge
<a name="pipes-sqs-configure-queue"></a>

[Buat antrian Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-create-queue.html) untuk dijadikan sumber pipa Anda. Kemudian konfigurasikan antrian untuk memberikan waktu bagi pipa Anda untuk memproses setiap kumpulan peristiwa — dan untuk EventBridge mencoba lagi sebagai respons terhadap kesalahan pelambatan saat meningkatkan skala.

Untuk memungkinkan waktu pipa Anda memproses setiap batch rekaman, atur batas waktu visibilitas antrian sumber menjadi setidaknya enam kali runtime gabungan pengayaan pipa dan komponen target. Waktu tambahan memungkinkan untuk EventBridge mencoba lagi jika pipa Anda dibatasi saat memproses batch sebelumnya.

Jika pipa Anda gagal memproses pesan beberapa kali, Amazon SQS dapat mengirimkannya ke antrian surat [mati](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). Ketika pipa Anda mengembalikan kesalahan, EventBridge simpan dalam antrian. Setelah batas waktu visibilitas terjadi, EventBridge terima pesan lagi. Untuk mengirim pesan ke antrean kedua setelah sejumlah penerimaan, konfigurasikan antrean surat gagal pada antrean sumber Anda.

**catatan**  
Pastikan Anda mengonfigurasi antrian huruf mati pada antrian sumber, bukan pada pipa. Antrian huruf mati yang Anda konfigurasikan pada pipa digunakan untuk antrian pemanggilan asinkron pipa, bukan untuk antrian sumber.

Jika pipa Anda mengembalikan kesalahan, atau tidak dapat dipanggil karena konkurensi maksimum, pemrosesan mungkin berhasil dengan upaya tambahan. **Untuk memberikan pesan lebih banyak kesempatan untuk diproses sebelum mengirimnya ke antrian surat mati, setel kebijakan redrive antrian sumber ke setidaknya 5. `maxReceiveCount`**

## Melaporkan kegagalan item batch
<a name="pipes-sqs-batch-failures"></a>

Saat EventBridge mengkonsumsi dan memproses streaming data dari suatu sumber, secara default ia memeriksa ke nomor urutan tertinggi dari batch, tetapi hanya ketika batch berhasil total. Untuk menghindari pemrosesan ulang pesan yang berhasil diproses dalam kumpulan yang gagal, Anda dapat mengonfigurasi pengayaan atau target untuk mengembalikan objek yang menunjukkan pesan mana yang berhasil dan mana yang gagal. Ini disebut respon batch paral.

Untuk informasi selengkapnya, lihat [Kegagalan batch sebagian](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Status berhasil dan gagal
<a name="pipes-sqs-batch-failures-conditions"></a>

Jika Anda mengembalikan salah satu dari yang berikut ini EventBridge , perlakukan batch sebagai kesuksesan total:
+ Daftar `batchItemFailure` kosong
+ Daftar `batchItemFailure` nol
+ `EventResponse` kosong
+ `EventResponse` nol

Jika Anda mengembalikan salah satu dari yang berikut ini, EventBridge memperlakukan batch sebagai kegagalan total:
+ String `itemIdentifier` kosong
+ `itemIdentifier` nol
+ `itemIdentifier` dengan nama kunci yang buruk

EventBridge mencoba kembali kegagalan berdasarkan strategi coba lagi Anda.

# Pemfilteran acara di Amazon Pipes EventBridge
<a name="eb-pipes-event-filtering"></a>

Dengan EventBridge Pipes, Anda dapat memfilter peristiwa sumber tertentu dan memproses hanya sebagian dari mereka. Pemfilteran ini bekerja dengan cara yang sama seperti memfilter pada bus EventBridge acara atau pemetaan sumber peristiwa Lambda, dengan menggunakan pola peristiwa. Untuk informasi selengkapnya tentang pola acara, lihat[Membuat pola EventBridge acara Amazon](eb-event-patterns.md).

`FilterCriteria`Objek kriteria filter adalah struktur yang terdiri dari daftar filter (`Filters`). Setiap filter adalah struktur yang mendefinisikan pola penyaringan ()`Pattern`. A `Pattern` adalah representasi string dari aturan filter JSON. Sebuah `FilterCriteria` objek terlihat seperti contoh berikut:

```
{
  "Filters": [
    {"Pattern": "{ \"Metadata1\": [ pattern1 ], \"data\": { \"Data1\": [ pattern2 ] }}"
    }
  ]
}
```

Untuk kejelasan tambahan, berikut adalah nilai filter yang `Pattern` diperluas di JSON biasa:

```
{
  "Metadata1": [ pattern1 ],
  "data": {"Data1": [ pattern2 ]}
}
```

Amazon Kinesis, Amazon MQ, Amazon MSK, dan Apache Kafka yang dikelola sendiri menerapkan pengkodean Base64 ke muatan, tetapi bukan bidang metadata. Misalnya, aliran Kinesis Anda berisi peristiwa seperti ini:

```
{
  "kinesisSchemaVersion": "1.0",
  "partitionKey": "1",
  "sequenceNumber": "49590338271490256608559692538361571095921575989136588898",
  "data": {"City": "Seattle",
    "State": "WA",
    "Temperature": "46",
    "Month": "December"
  },
  "approximateArrivalTimestamp": 1545084650.987
}
```

Ketika peristiwa mengalir melalui pipa Anda, itu akan terlihat seperti berikut dengan `data` bidang base64 yang dikodekan:

```
{
  "kinesisSchemaVersion": "1.0",
  "partitionKey": "1",
  "sequenceNumber": "49590338271490256608559692538361571095921575989136588898",
  "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
  "approximateArrivalTimestamp": 1545084650.987,
  "eventSource": "aws:kinesis",
  "eventVersion": "1.0",
  "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898",
  "eventName": "aws:kinesis:record",
  "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role",
  "awsRegion": "us-east-2",
  "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream"
}
```

Saat Anda membuat filter acara, EventBridge Pipes dapat mengakses konten acara. Konten ini dapat diloloskan oleh JSON, seperti bidang Amazon SQS, atau yang dikodekan base64, seperti `body` bidang Kinesis. `data` Jika data Anda adalah JSON yang valid, template input atau jalur JSON Anda untuk parameter target dapat mereferensikan konten secara langsung, karena EventBridge Pipes akan secara otomatis mendekodekannya. Misalnya, jika sumber peristiwa Kinesis adalah JSON yang valid, Anda dapat mereferensikan variabel menggunakan. `<$.data.someKey>`

Melanjutkan contoh kami, untuk memfilter `partitionKey` metadata yang tidak dikodekan di luar `data` objek dan `City` properti yang dikodekan base64 di dalam `data` objek, Anda akan menggunakan filter berikut:

```
{
  "partitionKey": [ "1" ],
  "data": {
    "City": [ "Seattle" ]
  }
}
```

Saat membuat pola peristiwa, Anda dapat memfilter berdasarkan bidang yang dikirim oleh API sumber, dan bukan pada bidang yang ditambahkan oleh operasi polling. Bidang berikut tidak dapat digunakan dalam pola acara:
+ `awsRegion`
+ `eventSource`
+ `eventSourceARN`
+ `eventVersion`
+ `eventID`
+ `eventName`
+ `invokeIdentityArn`
+ `eventSourceKey`

Bagian berikut menjelaskan perilaku pemfilteran untuk setiap jenis sumber peristiwa yang didukung.

## Memfilter pesan Amazon SQS
<a name="pipes-filter-sqs"></a>

Jika pesan Amazon SQS tidak memenuhi kriteria filter Anda, EventBridge secara otomatis menghapus pesan dari antrian. Anda tidak perlu menghapus pesan ini secara manual di Amazon SQS. Menghubungkan beberapa pipa ke satu antrian SQS sepertinya tidak akan menjadi pengaturan yang berguna - pipa akan bersaing untuk mendapatkan pesan yang akan dijatuhkan jika tidak tertandingi.

Badan pesan Amazon SQS dapat berisi string apa pun, bukan hanya JSON. EventBridge Pipes mengharapkan `FilterCriteria` format Anda cocok dengan format pesan yang masuk, baik JSON yang valid atau string biasa. Jika ada ketidakcocokan, EventBridge Pipes menjatuhkan pesan. Jika Anda `FilterCriteria` tidak menyertakan`body`, artinya Anda hanya memfilter berdasarkan metadata, EventBridge Pipes melewatkan pemeriksaan ini. Tabel berikut merangkum evaluasi:


| Format pola filter | Format masuk | Hasil | 
| --- | --- | --- | 
|  Tali polos  |  Tali polos  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  Tali polos  |  JSON yang valid  |  EventBridge menjatuhkan pesan.  | 
|  JSON yang valid  |  Tali polos  |  EventBridge menjatuhkan pesan.  | 
|  JSON yang valid  |  JSON yang valid  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  Tidak ada pola filter untuk `body`  |  Tali polos  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  Tidak ada pola filter untuk `body`  |  JSON yang valid  |  EventBridge filter berdasarkan kriteria filter Anda.  | 

## Memfilter pesan Kinesis dan DynamoDB
<a name="pipes-filter-kinesis-dynamobd"></a>

Setelah kriteria filter Anda memproses Kinesis atau rekaman DynamoDB, iterator stream akan melewati catatan ini. Jika catatan tidak memenuhi kriteria filter Anda, Anda tidak perlu menghapus rekaman secara manual dari sumber acara Anda. Setelah periode retensi, Kinesis dan DynamoDB secara otomatis menghapus catatan lama ini. Jika Anda ingin catatan dihapus lebih cepat, lihat [Mengubah Periode Retensi Data](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-extended-retention.html).

Untuk memfilter peristiwa dengan benar dari sumber peristiwa aliran, bidang data dan kriteria filter Anda untuk bidang data harus dalam format JSON yang valid. (Untuk Kinesis, bidang data adalah. `data` Untuk DynamoDB, bidang datanya adalah.) `dynamodb` Jika salah satu bidang tidak dalam format JSON yang valid, EventBridge jatuhkan pesan atau melempar pengecualian. Tabel berikut merangkum perilaku spesifik:


| Format pola filter | Format masuk | Hasil | 
| --- | --- | --- | 
|  JSON yang valid  |  JSON yang valid  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  JSON yang valid  |  Non-JSON  |  EventBridge menjatuhkan pesan.  | 
|  Tidak ada pola filter untuk `data` (Kinesis) atau (`dynamodb`DynamoDB)  |  JSON yang valid  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  Tidak ada pola filter untuk `data` (Kinesis) atau (`dynamodb`DynamoDB)  |  Non-JSON  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  Non-JSON  |  Setiap  |  EventBridge melempar pengecualian pada saat pembuatan atau pembaruan Pipa. Pola filter harus format JSON yang valid.  | 

## Memfilter Amazon Managed Streaming untuk Apache Kafka Kafka, Apache Kafka yang dikelola sendiri, dan pesan Amazon MQ
<a name="pipes-filter-poller"></a>

**catatan**  
Setelah Anda melampirkan kriteria filter ke pipa dengan sumber acara Apache Kafka atau Amazon MQ, diperlukan waktu hingga 15 menit untuk menerapkan aturan pemfilteran Anda ke acara.

Untuk [sumber Amazon MQ](eb-pipes-mq.md), bidang pesannya adalah. `data` Untuk sumber Apache Kafka ([Amazon MSK](eb-pipes-msk.md) dan [Apache Kafka yang dikelola sendiri](eb-pipes-kafka.md)), ada dua bidang pesan: dan. `key` `value`

EventBridge menjatuhkan pesan yang tidak cocok dengan semua bidang yang disertakan dalam filter. Untuk Apache Kafka, EventBridge melakukan offset untuk pesan yang cocok dan tak tertandingi setelah berhasil memanggil target. Untuk Amazon MQ, EventBridge mengakui pesan yang cocok setelah berhasil menjalankan fungsi dan mengakui pesan yang tak tertandingi saat memfilternya.

Pesan Apache Kafka dan Amazon MQ harus berupa string yang dikodekan UTF-8, baik string biasa atau dalam format JSON. Itu karena EventBridge menerjemahkan array Apache Kafka dan Amazon MQ byte ke UTF-8 sebelum menerapkan kriteria filter. Jika pesan Anda menggunakan pengkodean lain, seperti UTF-16 atau ASCII, atau jika format pesan tidak cocok dengan format, EventBridge hanya memproses filter `FilterCriteria` metadata. Tabel berikut merangkum perilaku spesifik:


| Format pola filter | Format masuk | Hasil | 
| --- | --- | --- | 
|  Tali polos  |  Tali polos  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  Tali polos  |  JSON yang valid  |  EventBridge filter pada metadata saja, mengabaikan bidang (Amazon MQ) atau `key` dan `data` `value` bidang (Apache Kafka)  | 
|  JSON yang valid  |  Tali polos  |  EventBridge filter pada metadata saja, mengabaikan bidang (Amazon MQ) atau `key` dan `data` `value` bidang (Apache Kafka)  | 
|  JSON yang valid  |  JSON yang valid  |  EventBridge filter berdasarkan kriteria filter Anda.  | 
|  Tidak ada pola filter untuk `data` (Amazon MQ) atau `key` dan `value` (Apache Kafka)  |  Tali polos  |  EventBridge filter pada metadata saja, mengabaikan bidang (Amazon MQ) atau `key` dan `data` `value` bidang (Apache Kafka)  | 
|  Tidak ada pola filter untuk `data` (Amazon MQ) atau `key` dan `value` (Apache Kafka)  |  JSON yang valid  |  EventBridge filter pada metadata saja, mengabaikan bidang (Amazon MQ) atau `key` dan `data` `value` bidang (Apache Kafka)  | 
|  Setiap  |  String yang dikodekan non-UTF  |  EventBridge filter pada metadata saja, mengabaikan bidang (Amazon MQ) atau `key` dan `data` `value` bidang (Apache Kafka)  | 

## Perbedaan antara Lambda ESM dan Pipa EventBridge
<a name="pipes-filter-esm-diff"></a>

Saat memfilter acara, Lambda ESM EventBridge dan Pipes beroperasi secara umum dengan cara yang sama. Perbedaan utama adalah bahwa `eventSourceKey` bidang tidak ada dalam muatan ESM.

## Menggunakan operator perbandingan dalam filter pipa
<a name="pipes-filter-comparison-operators"></a>

Operator perbandingan memungkinkan Anda untuk membuat pola peristiwa yang cocok dengan nilai bidang dalam peristiwa.

Untuk daftar lengkap operator perbandingan yang didukung untuk digunakan dalam filter pipa, lihat[Operator perbandingan](eb-create-pattern-operators.md).

# Pengayaan acara di Amazon Pipes EventBridge
<a name="pipes-enrichment"></a>

Dengan langkah pengayaan EventBridge Pipa, Anda dapat meningkatkan data dari sumber sebelum mengirimkannya ke target. Misalnya, Anda mungkin menerima acara yang *dibuat Tiket* yang tidak menyertakan data tiket lengkap. Menggunakan pengayaan, Anda dapat meminta fungsi Lambda memanggil `get-ticket` API untuk detail tiket lengkap. Pipa kemudian dapat mengirim informasi itu ke [target](eb-pipes-event-target.md).

Anda dapat mengonfigurasi pengayaan berikut saat menyiapkan pipa di: EventBridge
+ Tujuan API
+ Amazon API Gateway
+ Fungsi Lambda
+ Mesin status Step Functions
**catatan**  
EventBridge Pipa hanya mendukung [alur kerja Express](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) sebagai pengayaan.

EventBridge memanggil pengayaan secara serempak karena harus menunggu respons dari pengayaan sebelum memanggil target.

Respons pengayaan terbatas pada ukuran maksimum 6MB.

Anda juga dapat mengubah data yang Anda terima dari sumber sebelum mengirimnya untuk peningkatan. Untuk informasi selengkapnya, lihat [Transformasi masukan Amazon EventBridge Pipes](eb-pipes-input-transformation.md).

## Memfilter acara menggunakan pengayaan
<a name="pipes-enrichment-filtering"></a>

EventBridge Pipa melewati respons pengayaan langsung ke target yang dikonfigurasi. Ini termasuk respons array untuk target yang mendukung batch. Untuk informasi selengkapnya tentang perilaku batch, lihat[Pengelompokan dan konkurensi EventBridge Pipa Amazon](eb-pipes-batching-concurrency.md). Anda juga dapat menggunakan pengayaan Anda sebagai filter dan melewatkan lebih sedikit acara daripada yang diterima dari sumbernya. Jika Anda tidak ingin memanggil target, kembalikan respons kosong, seperti, `""``{}`, atau`[]`.

**catatan**  
Jika Anda ingin memanggil target dengan muatan kosong, kembalikan array dengan JSON kosong. `[{}]`

## Memohon pengayaan
<a name="pipes-invocation"></a>

EventBridge memanggil pengayaan secara sinkron (tipe pemanggilan disetel ke`REQUEST_RESPONSE`) karena harus menunggu respons dari pengayaan sebelum memanggil target.

**catatan**  
Untuk mesin status Step Functions, EventBridge hanya mendukung [alur kerja Express](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) sebagai pengayaan, karena dapat dipanggil secara sinkron.

# Target Amazon EventBridge Pipes
<a name="eb-pipes-event-target"></a>

Anda dapat mengirim data dalam pipa Anda ke target tertentu. Anda dapat mengonfigurasi target berikut saat menyiapkan pipa di EventBridge:
+ [Tujuan API](eb-api-destinations.md)
+ [API Gateway](eb-api-gateway-target.md)
+ [Antrian pekerjaan batch](#pipes-targets-specifics-batch)
+ [CloudWatch grup log](#pipes-targets-specifics-cwl)
+ [Tugas ECS](#pipes-targets-specifics-ecs-task)
+ [Bus acara di akun dan Wilayah yang sama](#pipes-targets-specifics-eventbridge)
+ Aliran pengiriman Firehose
+ Templat penilaian Inspector
+ Aliran kinesis
+ [Fungsi Lambda (SYNC atau ASYNC)](#pipes-targets-specifics-lambda-stepfunctions)
+ Kueri API data klaster Redshift
+ SageMaker Pipa AI
+ Topik Amazon SNS (topik SNS FIFO tidak didukung)
+ Antrean Amazon SQS
+ [Mesin status Step Functions](#pipes-targets-specifics-lambda-stepfunctions)
  + Alur kerja ekspres (SYNC atau ASYNC)
  + Alur kerja standar (ASYNC)
+ [Timestream untuk LiveAnalytics meja](#pipes-targets-specifics-timestream)

## Parameter terget
<a name="pipes-targets-specific-parms"></a>

Beberapa layanan target tidak mengirim muatan acara ke target, sebaliknya, mereka memperlakukan acara sebagai pemicu untuk menjalankan API tertentu. EventBridge menggunakan [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html)untuk menentukan informasi apa yang dikirim ke API itu. Sumber daya yang dimaksud meliputi:
+ Tujuan API (Data yang dikirim ke tujuan API harus sesuai dengan struktur API. Anda harus menggunakan [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate)objek untuk memastikan data terstruktur dengan benar. Jika Anda ingin memasukkan muatan acara asli, rujuk di [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate).)
+ API Gateway (Data yang dikirim ke API Gateway harus sesuai dengan struktur API. Anda harus menggunakan [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate)objek untuk memastikan data terstruktur dengan benar. Jika Anda ingin memasukkan muatan acara asli, rujuk di [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate).)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetRedshiftDataParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetRedshiftDataParameters.html)(Cluster API Data Amazon Redshift)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetSageMakerPipelineParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetSageMakerPipelineParameters.html)(Pipa Pembuatan Model SageMaker Runtime Amazon)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetBatchJobParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetBatchJobParameters.html) (AWS Batch)

**catatan**  
EventBridge tidak mendukung semua sintaks JSON Path dan mengevaluasinya saat runtime. Sintaks yang didukung meliputi:   
notasi titik (misalnya,`$.detail`)
garis putus-putus
menggarisbawahi
karakter alfanumerik
indeks array
wildcard (\$1)
garis miring ke depan

### Parameter jalur dinamis
<a name="pipes-targets-dynamic-parms"></a>

EventBridge Parameter target pipa mendukung sintaks jalur JSON dinamis opsional. Anda dapat menggunakan sintaks ini untuk menentukan jalur JSON alih-alih nilai statis (misalnya`$.detail.state`). Seluruh nilai harus berupa jalur JSON, tidak hanya sebagian saja. Misalnya, `RedshiftParameters.Sql` bisa `$.detail.state` tetapi tidak bisa`"SELECT * FROM $.detail.state"`. Jalur ini diganti secara dinamis saat runtime dengan data dari payload acara itu sendiri di jalur yang ditentukan. Parameter jalur dinamis tidak dapat mereferensikan nilai baru atau yang diubah yang dihasilkan dari transformasi input. Sintaks yang didukung untuk jalur JSON parameter dinamis sama seperti saat mengubah input. Untuk informasi selengkapnya, lihat [Transformasi masukan Amazon EventBridge Pipes](eb-pipes-input-transformation.md).

Sintaks dinamis dapat digunakan pada semua string, bidang non-enum dari semua pengayaan EventBridge Pipa dan parameter target kecuali:
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetCloudWatchLogsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetCloudWatchLogsParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeEnrichmentHttpParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeEnrichmentHttpParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetHttpParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetHttpParameters.html)

[Misalnya, untuk mengatur target Kinesis pipa ke kunci khusus dari peristiwa sumber Anda, atur. `PartitionKey` KinesisTargetParameter PartitionKey](https://docs.aws.amazon.com/)ke: 
+ `"$.data.someKey"`untuk sumber Kinesis
+ `"$.body.someKey"`untuk sumber Amazon SQS

Kemudian, jika payload acara adalah string JSON yang valid, seperti`{"someKey":"someValue"}`, EventBridge mengekstrak nilai dari jalur JSON dan menggunakannya sebagai parameter target. Dalam contoh ini, EventBridge akan mengatur Kinesis `PartitionKey` menjadi "”*someValue*.

## Izin
<a name="pipes-targets-permissions"></a>

Untuk melakukan panggilan API pada sumber daya yang Anda miliki, EventBridge Pipes memerlukan izin yang sesuai. EventBridge PIpes menggunakan peran IAM yang Anda tentukan pada pipa untuk pengayaan dan panggilan target menggunakan prinsipal IAM. `pipes.amazonaws.com`

## Memanggil target
<a name="pipes-targets-invocation"></a>

EventBridge memiliki cara berikut untuk memanggil target:
+ **Synchronously** (tipe pemanggilan diatur ke`REQUEST_RESPONSE`) — EventBridge menunggu respons dari target sebelum melanjutkan.
+ Secara **asinkron** (tipe pemanggilan disetel ke`FIRE_AND_FORGET`) — EventBridge tidak menunggu respons sebelum melanjutkan.

Secara default, untuk pipa dengan sumber yang dipesan, EventBridge memanggil target secara serempak karena respons dari target diperlukan sebelum melanjutkan ke acara berikutnya. 

Jika sumber tidak menerapkan urutan, seperti antrian EventBridge Amazon SQS standar, dapat memanggil target yang didukung secara sinkron atau asinkron. 

Dengan fungsi Lambda dan mesin status Step Functions, Anda dapat mengonfigurasi jenis pemanggilan.

**catatan**  
Untuk mesin status Step Functions, [alur kerja Standar](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) harus dipanggil secara asinkron.

## Batas ukuran muatan
<a name="pipes-targets-payload-size"></a>

EventBridge Pipa mendukung muatan hingga 6 MB. Namun, batas ukuran muatan efektif ditentukan oleh mana yang lebih kecil: batas Pipa 6 MB atau ukuran muatan maksimum layanan target. Contoh:
+ Fungsi Lambda mendukung muatan hingga 6 MB, sehingga batas efektif untuk pipa yang menargetkan Lambda adalah 6 MB.
+ EventBridge bus acara mendukung muatan hingga 1 MB, sehingga batas efektif untuk pipa yang menargetkan bus acara adalah 1 MB.
+ Mesin status Step Functions mendukung muatan hingga 256 KB, sehingga batas efektif untuk pipa yang menargetkan Step Functions adalah 256 KB.

Saat mengonfigurasi pipa Anda, pastikan ukuran muatan Anda, termasuk transformasi apa pun yang diterapkan oleh pengayaan atau transformasi input, tidak melebihi ukuran muatan maksimum target.

## AWS Batch antrian pekerjaan spesifik target
<a name="pipes-targets-specifics-batch"></a>

Semua AWS Batch `submitJob` parameter dikonfigurasi secara eksplisit`BatchParameters`, dan seperti semua parameter Pipe, parameter ini dapat dinamis menggunakan jalur JSON ke muatan acara masuk Anda.

## CloudWatch Log spesifik target grup
<a name="pipes-targets-specifics-cwl"></a>

Apakah Anda menggunakan transformator input atau tidak, muatan peristiwa digunakan sebagai pesan log. Anda dapat mengatur `Timestamp` (atau eksplisit `LogStreamName` tujuan Anda) melalui `CloudWatchLogsParameters` in`PipeTarget`. Seperti semua parameter pipa, parameter ini dapat dinamis saat menggunakan jalur JSON ke muatan acara masuk Anda.

## Spesifikasi target tugas Amazon ECS
<a name="pipes-targets-specifics-ecs-task"></a>

Semua `runTask` parameter Amazon ECS dikonfigurasi secara eksplisit melalui. `EcsParameters` Seperti semua parameter pipa, parameter ini dapat dinamis saat menggunakan jalur JSON ke muatan acara masuk Anda.

## Fungsi Lambda dan spesifikasi target alur kerja Step Functions
<a name="pipes-targets-specifics-lambda-stepfunctions"></a>

Lambda dan Step Functions tidak memiliki API batch. Untuk memproses batch peristiwa dari sumber pipa, batch dikonversi ke array JSON dan diteruskan sebagai input ke target Lambda atau Step Functions. Untuk informasi selengkapnya, lihat [Pengelompokan dan konkurensi EventBridge Pipa Amazon](eb-pipes-batching-concurrency.md). 

## Timestream untuk spesifikasi target LiveAnalytics tabel
<a name="pipes-targets-specifics-timestream"></a>

Pertimbangan saat menentukan LiveAnalytics tabel Timestream for sebagai target pipa meliputi:
+ Aliran Apache Kafka (termasuk dari Amazon MSK atau penyedia pihak ketiga) saat ini tidak didukung sebagai sumber pipa.
+ Jika Anda telah menentukan DynamoDB aliran Kinesis atau sebagai sumber pipa, Anda harus menentukan jumlah upaya coba lagi.

  Untuk informasi selengkapnya, lihat [Mengkonfigurasi pengaturan pipa](eb-pipes-create.md#pipes-configure-pipe-settings).

## EventBridge spesifik target bus acara
<a name="pipes-targets-specifics-eventbridge"></a>

Saat Anda mengonfigurasi bus EventBridge acara sebagai target pipa, muatan dari pipa Anda secara otomatis ditempatkan di `detail` bagian EventBridge acara. Gunakan [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html)untuk mengkonfigurasi acara `source` dan `detail-type` bidang. Kedua bidang mendukung sintaks jalur JSON dinamis untuk mengekstrak nilai dari payload acara Anda. Misalnya, atur `Source` ke `$.body.source` atau `DetailType` ke`$.data.eventType`. Anda juga dapat menggunakan transformator input untuk memodifikasi struktur acara sebelum ditempatkan di `detail` lapangan. Lihat informasi yang lebih lengkap di [Transformasi masukan Amazon EventBridge Pipes](eb-pipes-input-transformation.md).

# Pengelompokan dan konkurensi EventBridge Pipa Amazon
<a name="eb-pipes-batching-concurrency"></a>

## Perilaku batching
<a name="pipes-batching"></a>

EventBridge Pipa mendukung batching dari sumber dan ke target yang mendukungnya. Selain itu, batching hingga pengayaan didukung untuk dan. AWS Lambda AWS Step Functions Karena layanan yang berbeda mendukung tingkat batching yang berbeda, Anda tidak dapat mengonfigurasi pipa dengan ukuran batch yang lebih besar daripada dukungan target. Misalnya, sumber aliran Amazon Kinesis mendukung ukuran batch maksimum 10.000 rekaman, tetapi Layanan Antrian Sederhana Amazon mendukung maksimum 10 pesan per batch sebagai target. Oleh karena itu, pipa dari aliran Kinesis ke antrian Amazon SQS dapat memiliki ukuran batch maksimum yang dikonfigurasi pada sumber 10.

Jika Anda mengonfigurasi pipa dengan pengayaan atau target yang tidak mendukung batching, Anda tidak akan dapat mengaktifkan batching pada sumbernya.

Saat batching diaktifkan pada sumber, array catatan JSON dilewatkan melalui pipa dan kemudian dipetakan ke API batch dari pengayaan atau target yang didukung. [Transformator input](eb-pipes-input-transformation.md) diterapkan secara terpisah pada setiap catatan JSON individu dalam array, bukan array secara keseluruhan. Untuk contoh array ini, lihat [Sumber EventBridge Pipa Amazon](eb-pipes-event-source.md) dan pilih sumber tertentu. Pipa akan menggunakan API batch untuk pengayaan atau target yang didukung meskipun ukuran batch adalah 1. Jika pengayaan atau target tidak memiliki API batch tetapi menerima muatan JSON penuh, seperti Lambda dan Step Functions, seluruh array JSON dikirim dalam satu permintaan. Permintaan akan dikirim sebagai array JSON bahkan jika ukuran batch adalah 1.

Jika pipa dikonfigurasi untuk batching di sumber, dan target mendukung batching, Anda dapat mengembalikan array item JSON dari pengayaan Anda. Array ini dapat mencakup array yang lebih pendek atau lebih panjang dari sumber aslinya. Namun, jika array lebih besar dari ukuran batch yang didukung oleh target, pipa tidak akan memanggil target.

### Target batchable yang didukung
<a name="pipes-batchable-target"></a>


| Target | Ukuran batch maksimum | 
| --- | --- | 
| CloudWatch Log | 10.000 | 
| EventBridge bus acara | 10 | 
| Aliran Firehose | 500 | 
| Aliran kinesis | 500 | 
| Fungsi Lambda | pelanggan didefinisikan | 
| Mesin status Step Functions | pelanggan didefinisikan | 
| Topik Amazon SNS | 10 | 
| Antrean Amazon SQS | 10 | 

Pengayaan dan target berikut menerima muatan peristiwa batch penuh untuk diproses dan dibatasi oleh ukuran muatan total acara, bukan ukuran batch:
+ Mesin status Step Functions (262144 karakter)
+ Fungsi Lambda (6MB)

### Kegagalan batch sebagian
<a name="pipes-partial-batch-failure"></a>

Untuk Amazon SQS dan sumber aliran, seperti Kinesis dan DynamoDB, Pipes mendukung penanganan kegagalan batch sebagian dari EventBridge kegagalan target. Jika target mendukung batching dan hanya sebagian dari batch yang berhasil, EventBridge secara otomatis mencoba kembali batching sisa muatan. Untuk konten yang paling up-to-date diperkaya, percobaan ulang ini terjadi melalui seluruh pipa, termasuk memanggil kembali pengayaan yang dikonfigurasi.

Penanganan kegagalan batch sebagian dari pengayaan tidak didukung.

Untuk target Lambda dan Step Functions, Anda juga dapat menentukan kegagalan sebagian dengan mengembalikan payload dengan struktur yang ditentukan dari target. Ini menunjukkan peristiwa yang perlu dicoba lagi. 

**Contoh struktur payload kegagalan sebagian**

```
{ 
  "batchItemFailures": [ 
    {
      "itemIdentifier": "id2"
    },
    {
      "itemIdentifier": "id4"
    }
]
```

Dalam contoh, `itemIdentifier` mencocokkan ID peristiwa yang ditangani oleh target Anda dari sumber aslinya. Untuk Amazon SQS, ini adalah. `messageId` Untuk Kinesis dan DynamoDB, ini adalah. `eventID` Agar EventBridge Pipes dapat menangani kegagalan batch sebagian dari target secara memadai, bidang ini harus disertakan dalam muatan array apa pun yang dikembalikan oleh pengayaan.

## Perilaku throughput dan konkurensi
<a name="pipes-concurrency"></a>

*Setiap peristiwa atau kumpulan peristiwa yang diterima oleh pipa yang melakukan perjalanan ke pengayaan atau target dianggap sebagai eksekusi pipa.* Pipa dalam `STARTED` keadaan terus melakukan polling untuk peristiwa dari sumber, meningkatkan dan menurunkan tergantung pada backlog yang tersedia dan pengaturan batching yang dikonfigurasi. 

Untuk kuota eksekusi pipa bersamaan, dan jumlah pipa per akun dan Wilayah, lihat. [EventBridge Kuota pipa](eb-quota.md#eb-pipes-limits)

Secara default, satu pipa akan menskalakan ke eksekusi bersamaan maksimum berikut, tergantung pada sumbernya:
+ **DynamoDB** — Eksekusi bersamaan dapat naik setinggi yang dikonfigurasi `ParallelizationFactor` pada pipa dikalikan dengan jumlah pecahan di sungai.
+ **Apache Kafka** — Eksekusi bersamaan dapat naik setinggi jumlah partisi pada topik, hingga 1000.
+ **Kinesis** — Eksekusi bersamaan dapat naik setinggi yang `ParallelizationFactor` dikonfigurasi pada pipa dikalikan dengan jumlah pecahan di sungai.
+ **Amazon MQ** - 5
+ **Amazon SQS** - 1250

[Jika Anda memiliki persyaratan untuk throughput polling maksimum yang lebih tinggi atau batas konkurensi, hubungi dukungan.](https://console.aws.amazon.com/support/home?#/case/create?issueType=technical)

**catatan**  
Batas eksekusi dianggap sebagai batasan keselamatan upaya terbaik. Meskipun polling tidak dibatasi di bawah nilai-nilai ini, pipa atau akun mungkin meledak lebih tinggi dari nilai rekomendasi ini.

Eksekusi pipa dibatasi maksimal 5 menit termasuk pengayaan dan pemrosesan target. Batas ini saat ini tidak dapat ditingkatkan.

Pipa dengan sumber yang diurutkan secara ketat, seperti antrian Amazon SQS FIFO, Kinesis dan DynamoDB Streams, atau topik Apache Kafka) selanjutnya dibatasi secara konkurensi oleh konfigurasi sumber, seperti jumlah grup pesan untuk antrian FIFO atau jumlah pecahan untuk antrian Kinesis. IDs Karena pemesanan dijamin ketat dalam batasan ini, pipa dengan sumber yang dipesan tidak dapat melebihi batas konkurensi tersebut. 

# Transformasi masukan Amazon EventBridge Pipes
<a name="eb-pipes-input-transformation"></a>

Amazon EventBridge Pipes mendukung transformator input opsional saat meneruskan data ke pengayaan dan target. Anda dapat menggunakan transformator Input untuk membentuk kembali payload input peristiwa JSON untuk melayani kebutuhan pengayaan atau layanan target. Untuk tujuan Amazon API Gateway dan API, inilah cara Anda membentuk peristiwa input ke RESTful model API Anda. Transformator input dimodelkan sebagai parameter. `InputTemplate` Mereka dapat berupa teks gratis, jalur JSON ke payload acara, atau objek JSON yang menyertakan jalur JSON sebaris ke payload acara. Untuk pengayaan, muatan acara berasal dari sumbernya. Untuk target, muatan acara adalah apa yang dikembalikan dari pengayaan, jika ada yang dikonfigurasi pada pipa. Selain data khusus layanan dalam muatan acara, Anda dapat menggunakan [variabel cadangan](#input-transform-reserved) dalam data referensi `InputTemplate` untuk pipa Anda.

Untuk mengakses item dalam array, gunakan notasi braket persegi.

**catatan**  
EventBridge tidak mendukung semua sintaks JSON Path dan mengevaluasinya saat runtime. Sintaks yang didukung meliputi:   
notasi titik (misalnya,`$.detail`)
tanda hubung
menggarisbawahi
karakter alfanumerik
indeks array
wildcard (\$1)
garis miring ke depan

Berikut ini adalah `InputTemplate` parameter sampel yang mereferensikan payload peristiwa Amazon SQS:

**String statis**

```
InputTemplate: "Hello, sender"
```

**Jalur JSON**

```
InputTemplate: <$.attributes.SenderId>
```

**String dinamis**

```
InputTemplate: "Hello, <$.attributes.SenderId>"
```

**JSON statis**

```
InputTemplate: >
{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3",
}
```

**JSON Dinamis**

```
InputTemplate: >
{
  "key1": "value1"
  "key2": <$.body.key>,
  "d": <aws.pipes.event.ingestion-time>
}
```

Menggunakan notasi braket persegi untuk mengakses item dalam array:

```
InputTemplate: >
{
  "key1": "value1"
  "key2": <$.body.Records[3]>,
  "d": <aws.pipes.event.ingestion-time>
}
```

**catatan**  
EventBridge menggantikan transformator input saat runtime untuk memastikan output JSON yang valid. Karena itu, letakkan tanda kutip di sekitar variabel yang merujuk ke parameter jalur JSON, tetapi jangan beri tanda kutip di sekitar variabel yang merujuk ke objek atau array JSON.

## Variabel yang dicadangkan
<a name="input-transform-reserved"></a>

Template masukan dapat menggunakan variabel cadangan berikut:
+ `<aws.pipes.pipe-arn>`— Nama Sumber Daya Amazon (ARN) dari pipa.
+ `<aws.pipes.pipe-name>`— Nama pipa.
+ `<aws.pipes.source-arn>`— ARN dari sumber acara pipa.
+ `<aws.pipes.enrichment-arn>`— ARN pengayaan pipa.
+ `<aws.pipes.target-arn>`— ARN dari target pipa.
+ `<aws.pipes.event.ingestion-time>`— Waktu di mana acara diterima oleh transformator input. Ini adalah stempel waktu ISO 8601. Kali ini berbeda untuk trafo input pengayaan dan trafo input target, tergantung pada kapan pengayaan selesai memproses acara.
+ `<aws.pipes.event>`— Acara yang diterima oleh transformator input.

  Untuk transformator input pengayaan, ini adalah acara dari sumbernya. Ini berisi muatan asli dari sumbernya, ditambah metadata khusus layanan tambahan. Lihat topik [Sumber EventBridge Pipa Amazon](eb-pipes-event-source.md) untuk contoh khusus layanan.

  Untuk transformator input target, ini adalah peristiwa yang dikembalikan oleh pengayaan, jika dikonfigurasi, tanpa metadata tambahan. Dengan demikian, muatan yang dikembalikan pengayaan mungkin non-JSON. Jika tidak ada pengayaan yang dikonfigurasi pada pipa, ini adalah peristiwa dari sumber dengan metadata.
+ `<aws.pipes.event.json>`— Sama seperti`aws.pipes.event`, tetapi variabel hanya memiliki nilai jika muatan asli, baik dari sumber atau dikembalikan oleh pengayaan, adalah JSON. Jika pipa memiliki bidang yang dikodekan, seperti bidang Amazon `body` SQS atau `data` Kinesis, bidang tersebut diterjemahkan dan diubah menjadi JSON yang valid. Karena tidak lolos, variabel hanya dapat digunakan sebagai nilai untuk bidang JSON. Untuk informasi selengkapnya, lihat [Penguraian data tubuh implisit](#input-transform-implicit).

## Contoh transformasi masukan
<a name="input-transform-example"></a>

Berikut ini adalah contoh acara Amazon EC2 yang dapat kita gunakan sebagai *contoh* acara kita.

```
{
  "version": "0",
  "id": "7bf73129-1428-4cd3-a780-95db273d1602",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "123456789012",
  "time": "2015-11-11T21:29:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111"
  ],
  "detail": {
    "instance-id": "i-0123456789",
    "state": "RUNNING"
  }
}
```

Mari kita gunakan JSON berikut sebagai *Transformer* kita.

```
{
  "instance" : <$.detail.instance-id>,
  "state": <$.detail.state>,
  "pipeArn" : <aws.pipes.pipe-arn>,
  "pipeName" : <aws.pipes.pipe-name>,
  "originalEvent" : <aws.pipes.event.json>
}
```

Berikut ini akan menjadi *Output* yang dihasilkan:

```
{
  "instance" : "i-0123456789",
  "state": "RUNNING",
  "pipeArn" : "arn:aws:pipe:us-east-1:123456789012:pipe/example",
  "pipeName" : "example",
  "originalEvent" : {
    ... // commented for brevity
  }
}
```

## Penguraian data tubuh implisit
<a name="input-transform-implicit"></a>

Bidang berikut dalam payload masuk mungkin di-escaped JSON, seperti objek Amazon SQS, atau base64 yang dikodekan, seperti `body` objek Kinesis. `data` Untuk [pemfilteran](eb-pipes-event-filtering.md) dan transformasi input, EventBridge mengubah bidang ini menjadi JSON yang valid sehingga sub-nilai dapat direferensikan secara langsung. Misalnya, `<$.data.someKey>` untuk Kinesis.

Agar target menerima muatan asli tanpa metadata tambahan, gunakan transformator input dengan data tubuh ini, khusus untuk sumbernya. Misalnya, `<$.body>` untuk Amazon SQS, atau untuk `<$.data>` Kinesis. Jika muatan asli adalah string JSON yang valid (misalnya`{"key": "value"}`), maka penggunaan transformator input dengan data badan spesifik sumber akan menghasilkan tanda kutip dalam muatan sumber asli dihapus. Misalnya, `{"key": "value"}` akan menjadi `"{key: value}"` ketika dikirim ke target. Jika target Anda memerlukan muatan JSON yang valid (misalnya, EventBridge Lambda atau Step Functions), ini akan menyebabkan kegagalan pengiriman. Agar target menerima data sumber asli tanpa menghasilkan JSON yang tidak valid, bungkus transformator input data badan sumber di JSON. Misalnya, `{"data": <$.data>}`.

Penguraian tubuh implisit juga dapat digunakan untuk mengisi nilai secara dinamis untuk sebagian besar target pipa atau parameter pengayaan. Untuk informasi selengkapnya, lihat [Parameter jalur dinamis](eb-pipes-event-target.md#pipes-targets-dynamic-parms)

**catatan**  
Jika payload asli adalah JSON yang valid, bidang ini akan berisi JSON yang tidak di-base64 yang tidak di-encode. Namun, jika payload tidak valid JSON, EventBridge base64-mengkodekan bidang yang tercantum di bawah ini, dengan pengecualian Amazon SQS.
+ **MQ Aktif** — `data`
+ **Kinesis** — `data`
+ **Amazon MSK** — `key` dan `value`
+ **MQ Kelinci** — `data`
+ **Apache Kafka yang dikelola sendiri;** — dan `key` `value`
+ **Amazon SQS** - `body`

## Masalah umum dengan mengubah input
<a name="eb-pipes-transform-input-issues"></a>

Ini adalah beberapa masalah umum saat mengubah input dalam EventBridge pipa:
+  Untuk String, tanda kutip diperlukan.
+  Tidak ada validasi saat membuat jalur JSON untuk templat Anda.
+  Jika Anda menentukan variabel untuk mencocokkan jalur JSON yang tidak ada dalam peristiwa, variabel tersebut tidak dibuat dan tidak akan muncul dalam keluaran.
+ Properti JSON seperti hanya `aws.pipes.event.json` dapat digunakan sebagai nilai bidang JSON, tidak sebaris di string lain.
+  EventBridge tidak lolos dari nilai yang diekstraksi oleh *Jalur Input*, saat mengisi *Template Input* untuk target.
+ Jika jalur JSON mereferensikan objek atau array JSON, tetapi variabel direferensikan dalam string, EventBridge menghapus tanda kutip internal untuk memastikan string yang valid. Misalnya, “Body is <\$1.body>” akan mengakibatkan EventBridge penghapusan tanda kutip dari objek. 

  Oleh karena itu, jika Anda ingin menampilkan objek JSON berdasarkan variabel jalur JSON tunggal, Anda harus menempatkannya sebagai kunci. Dalam contoh ini,`{"body": <$.body>}`.
+ Kutipan tidak diperlukan untuk variabel yang mewakili string. Mereka diizinkan, tetapi EventBridge Pipes secara otomatis menambahkan tanda kutip ke nilai variabel string selama transformasi, untuk memastikan output transformasi adalah JSON yang valid. EventBridge Pipa tidak menambahkan tanda kutip ke variabel yang mewakili objek atau array JSON. Jangan menambahkan tanda kutip untuk variabel yang mewakili objek JSON atau array.

  Misalnya, template input berikut mencakup variabel yang mewakili string dan objek JSON:

  ```
  {
    "pipeArn" : <aws.pipes.pipe-arn>,
    "pipeName" : <aws.pipes.pipe-name>,
    "originalEvent" : <aws.pipes.event.json>
  }
  ```

  Menghasilkan JSON yang valid dengan kutipan yang tepat:

  ```
  {
    "pipeArn" : "arn:aws:events:us-east-2:123456789012:pipe/example",
    "pipeName" : "example",
    "originalEvent" : {
      ... // commented for brevity
    }
  }
  ```
+ Untuk pengayaan atau target Lambda atau Step Functions, batch dikirim ke target sebagai array JSON, meskipun ukuran batch adalah 1. Namun, transformator input masih akan diterapkan ke catatan individu di JSON Array, bukan array secara keseluruhan. Untuk informasi selengkapnya, lihat [Pengelompokan dan konkurensi EventBridge Pipa Amazon](eb-pipes-batching-concurrency.md).
+ Transformator input dan penyaringan dapat mengekstrak nilai JSON yang telah disandikan string sekali, tetapi bukan nilai yang telah disandikan string dua kali. Ini biasanya terjadi ketika pesan Amazon SNS dikirim ke Amazon SQS. Ketika Amazon SQS menerima pesan Amazon SNS, itu merangkai seluruh pesan. Ketika Pipes kemudian menerima pesan Amazon SQS ini, konten pesan Amazon SNS muncul di lapangan dan `body` dapat diakses. Namun, jika `Message` bidang Amazon SNS itu sendiri berisi JSON yang dirangkai, konten bersarang tersebut dikodekan ganda dan tidak dapat diakses oleh transformator input atau filter. Misalnya, dapat `<$.body.TopicArn>` diakses, tetapi tidak `<$.body.Message.operation>` jika `Message` bidang berisi JSON stringified seperti. `"{\\\"operation\\\":\\\"UPDATE\\\",\\\"email\\\":\\\"user@example.com\\\"}"`

  Untuk mengatasi batasan ini, gunakan langkah pengayaan dengan fungsi Lambda untuk mengurai konten yang disandikan ganda dan mengekstrak nilai bersarang. Untuk informasi lebih lanjut tentang pengayaan, lihat. [Pengayaan](pipes-enrichment.md)

# Pencatatan kinerja Amazon EventBridge Pipes
<a name="eb-pipes-logs"></a>

EventBridge Pencatatan pipa memungkinkan Anda meminta EventBridge Pipa mengirim catatan yang merinci kinerja pipa ke AWS layanan yang didukung. Gunakan log untuk mendapatkan wawasan tentang kinerja eksekusi pipa Anda, dan untuk membantu pemecahan masalah dan debugging.

Anda dapat memilih AWS layanan berikut sebagai *tujuan log tempat* EventBridge Pipes mengirimkan catatan:
+ CloudWatch Log

  EventBridge mengirimkan catatan log ke grup log CloudWatch Log yang ditentukan. 

  Gunakan CloudWatch Log untuk memusatkan log dari semua sistem, aplikasi, dan AWS layanan yang Anda gunakan, dalam satu layanan yang sangat skalabel. Untuk informasi selengkapnya, lihat [Bekerja dengan grup log dan aliran log](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) di *Panduan Pengguna CloudWatch Log Amazon*.
+ Log aliran Firehose

  EventBridge mengirimkan catatan log ke aliran pengiriman Firehose. 

  Amazon Data Firehose adalah layanan yang dikelola sepenuhnya untuk mengirimkan data streaming real-time ke tujuan seperti AWS layanan tertentu, serta titik akhir HTTP kustom atau titik akhir HTTP yang dimiliki oleh penyedia layanan pihak ketiga yang didukung. Untuk informasi selengkapnya, lihat [Membuat aliran pengiriman Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) di Panduan Pengguna *Amazon Data Firehose*.
+ Log Amazon S3

  EventBridge mengirimkan catatan log sebagai objek Amazon S3 ke bucket yang ditentukan.

  Amazon S3 adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja terdepan di industri. Untuk informasi selengkapnya, lihat [Mengunggah, mengunduh, dan bekerja dengan objek di Amazon](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-downloading-objects.html) S3 di Panduan Pengguna *Layanan Penyimpanan Sederhana Amazon*.

## Cara kerja pencatatan Amazon EventBridge Pipes
<a name="eb-pipes-logs-overview"></a>

*Eksekusi* pipa adalah peristiwa atau kumpulan peristiwa yang diterima oleh pipa yang melakukan perjalanan ke target pengayaan. and/or Jika diaktifkan, EventBridge buat catatan log untuk setiap langkah eksekusi yang dilakukannya saat batch acara diproses. Informasi yang terkandung dalam catatan berlaku untuk batch acara, baik itu acara tunggal atau hingga 10.000 acara.

Anda dapat mengonfigurasi ukuran batch acara pada sumber pipa dan target. Untuk informasi selengkapnya, lihat [Pengelompokan dan konkurensi EventBridge Pipa Amazon](eb-pipes-batching-concurrency.md).

Data rekaman yang dikirim ke setiap tujuan log adalah sama.

Jika tujuan Amazon CloudWatch Logs dikonfigurasi, catatan log yang dikirimkan ke semua tujuan memiliki batas 256kb. Bidang akan dipotong seperlunya.

Anda dapat menyesuaikan catatan yang EventBridge dikirim ke tujuan log yang dipilih dengan cara berikut:
+ Anda dapat menentukan *tingkat log*, yang menentukan langkah-langkah eksekusi yang EventBridge mengirimkan catatan ke tujuan log yang dipilih. Untuk informasi selengkapnya, lihat [Menentukan tingkat log EventBridge Pipa](#eb-pipes-logs-level).
+ Anda dapat menentukan apakah EventBridge Pipes menyertakan data eksekusi dalam catatan untuk langkah-langkah eksekusi yang relevan. Data ini meliputi: 
  + Muatan batch acara
  + Permintaan dikirim ke AWS pengayaan atau layanan target
  + Respons yang dikembalikan oleh AWS pengayaan atau layanan target

  Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](#eb-pipes-logs-execution-data).

## Menentukan tingkat log EventBridge Pipa
<a name="eb-pipes-logs-level"></a>

Anda dapat menentukan jenis langkah eksekusi yang EventBridge mengirimkan catatan ke tujuan log yang dipilih. 

Pilih dari tingkat detail berikut untuk disertakan dalam catatan log. Tingkat log berlaku untuk semua tujuan log yang ditentukan untuk pipa. Setiap level log mencakup langkah-langkah eksekusi level log sebelumnya.
+ **OFF** - EventBridge tidak mengirim catatan apa pun ke tujuan log tertentu. Ini adalah pengaturan default.
+ **ERROR** — EventBridge mengirimkan catatan apa pun yang terkait dengan kesalahan yang dihasilkan selama eksekusi pipa ke tujuan log yang ditentukan.
+ **INFO** — EventBridge mengirimkan catatan apa pun yang terkait dengan kesalahan, serta memilih langkah lain yang dilakukan selama eksekusi pipa ke tujuan log yang ditentukan.
+ **TRACE** - EventBridge mengirimkan catatan apa pun yang dihasilkan selama langkah apa pun dalam eksekusi pipa ke tujuan log yang ditentukan.

Di EventBridge konsol, CloudWatch log dipilih sebagai tujuan log secara default, seperti tingkat `ERROR` log. Jadi, secara default, EventBridge Pipes membuat grup CloudWatch log baru yang mengirimkan catatan log yang berisi `ERROR` tingkat detail. Tidak ada default yang dipilih saat Anda mengonfigurasi log secara terprogram. 

Tabel berikut mencantumkan langkah-langkah eksekusi yang disertakan dalam setiap tingkat log.


****  

| Langkah | JEJAK | INFO | ERROR | MATI | 
| --- | --- | --- | --- | --- | 
|  Eksekusi Gagal  | x | x | x |   | 
|  Eksekusi Sebagian Gagal  | x | x | x |  | 
|  Eksekusi Dimulai  | x | x |   |   | 
|  Eksekusi Berhasil  | x | x |   |   | 
|  Eksekusi Dibatasi  | x | x | x |   | 
|  Batas Waktu Eksekusi  | x | x | x |   | 
|  Doa Pengayaan Gagal  | x | x | x |  | 
|  Doa Pengayaan Dilewati  | x | x |  |  | 
|  Doa Pengayaan Dimulai  | x |  |  |  | 
|  Doa Pengayaan Berhasil  | x |  |  |  | 
|  Tahap Pengayaan Dimasukkan  | x | x |  |  | 
|  Tahap Pengayaan Gagal  | x | x | x |  | 
|  Tahap Pengayaan Berhasil  | x | x |  |  | 
|  Transformasi Pengayaan Gagal  | x | x | x |  | 
|  Transformasi Pengayaan Dimulai  | x |  |  |  | 
|  Transformasi Pengayaan Berhasil  | x |  |  |  | 
|  Doa Target Gagal  | x | x | x |  | 
|  Doa Target Sebagian Gagal  | x | x | x |  | 
|  Doa Target Dilewati  | x |  |  |  | 
|  Doa Target Dimulai  | x |  |  |  | 
|  Doa Target Berhasil  | x |  |  |  | 
|  Tahap Target Dimasukkan  | x | x |  |  | 
|  Tahap Target Gagal  | x | x | x |  | 
|  Tahap Target Sebagian Gagal  | x | x | x |  | 
|  Tahap Target Dilewati  | x |  |  |  | 
|  Tahap Target Berhasil  | x | x |  |  | 
|  Transformasi Target Gagal  | x | x | x |  | 
|  Transformasi Target Dimulai  | x |  |  |  | 
|  Transformasi Target Berhasil  | x |  |  |  | 

## Termasuk data eksekusi di log EventBridge Pipes
<a name="eb-pipes-logs-execution-data"></a>

Anda dapat menentukan EventBridge untuk menyertakan *data eksekusi* dalam catatan yang dihasilkannya. Data eksekusi mencakup bidang yang mewakili muatan batch peristiwa, serta permintaan yang dikirim ke dan respons dari pengayaan dan target.

Data eksekusi berguna untuk pemecahan masalah dan debugging. `payload`Bidang berisi konten aktual dari setiap peristiwa yang disertakan dalam batch, memungkinkan Anda untuk menghubungkan peristiwa individual dengan eksekusi pipa tertentu.

Jika Anda memilih untuk menyertakan data eksekusi, itu termasuk untuk semua tujuan log yang ditentukan untuk pipa.

**penting**  
Bidang ini mungkin berisi informasi sensitif. EventBridge tidak berusaha untuk menyunting konten bidang ini selama pencatatan.

Saat menyertakan data eksekusi, EventBridge tambahkan bidang berikut ke catatan yang relevan: 
+ **`payload`**

  Merupakan isi dari batch acara yang sedang diproses oleh pipa.

  EventBridge termasuk `payload` bidang dalam catatan yang dihasilkan pada langkah-langkah di mana konten batch acara mungkin telah diperbarui. Ini termasuk langkah-langkah berikut:
  + `EXECUTION_STARTED`
  + `ENRICHMENT_TRANSFORMATION_SUCCEEDED`
  + `ENRICHMENT_STAGE_SUCCEEDED`
  + `TARGET_TRANSFORMATION_SUCCEEDED`
  + `TARGET_STAGE_SUCCEEDED`
+ **`awsRequest`**

  Merupakan permintaan yang dikirim ke pengayaan atau target sebagai string JSON. Untuk permintaan yang dikirim ke tujuan API, ini mewakili permintaan HTTP yang dikirim ke titik akhir tersebut.

  EventBridge mencakup `awsRequest` bidang dalam catatan yang dihasilkan pada langkah akhir pengayaan dan penargetan; yaitu, setelah EventBridge mengeksekusi atau mencoba untuk mengeksekusi permintaan terhadap pengayaan atau layanan target yang ditentukan. Ini termasuk langkah-langkah berikut:
  + `ENRICHMENT_INVOCATION_FAILED`
  + `ENRICHMENT_INVOCATION_SUCCEEDED`
  + `TARGET_INVOCATION_FAILED`
  + `TARGET_INVOCATION_PARTIALLY_FAILED`
  + `TARGET_INVOCATION_SUCCEEDED`
+ **`awsResponse`**

  Merupakan respons yang dikembalikan oleh pengayaan atau target, dalam format JSON. Untuk permintaan yang dikirim ke tujuan API, ini mewakili respons HTTP yang dikembalikan dari titik akhir tersebut.

  Seperti halnya`awsRequest`, EventBridge termasuk `awsResponse` bidang dalam catatan yang dihasilkan pada langkah akhir pengayaan dan penargetan; yaitu, setelah EventBridge mengeksekusi atau mencoba untuk mengeksekusi permintaan terhadap pengayaan atau layanan target yang ditentukan dan menerima tanggapan. Ini termasuk langkah-langkah berikut:
  + `ENRICHMENT_INVOCATION_FAILED`
  + `ENRICHMENT_INVOCATION_SUCCEEDED`
  + `TARGET_INVOCATION_FAILED`
  + `TARGET_INVOCATION_PARTIALLY_FAILED`
  + `TARGET_INVOCATION_SUCCEEDED`

Untuk diskusi tentang langkah-langkah eksekusi pipa, lihat[EventBridge Langkah eksekusi pipa](eb-pipes-logs-execution-steps.md).

### Mempotong data eksekusi dalam catatan log EventBridge Pipes
<a name="eb-pipes-logs-execution-data-truncation"></a>

Jika Anda memilih untuk EventBridge menyertakan data eksekusi dalam catatan log pipa, ada kemungkinan bahwa catatan dapat melebihi batas ukuran 256 KB. Untuk mencegah hal ini, EventBridge secara otomatis memotong bidang data eksekusi, dalam urutan berikut. EventBridge memotong setiap bidang seluruhnya sebelum melanjutkan untuk memotong bidang berikutnya. EventBridge memotong data bidang hanya dengan menghapus karakter dari akhir string data; tidak ada upaya yang dilakukan untuk memotong berdasarkan kepentingan data, dan pemotongan akan membatalkan pemformatan JSON.
+ `payload`
+ `awsRequest`
+ `awsResponse`

Jika EventBridge tidak memotong bidang dalam acara tersebut, `truncatedFields` bidang tersebut menyertakan daftar bidang data terpotong.

## Pelaporan kesalahan dalam catatan log EventBridge Pipes
<a name="eb-pipes-logs-errors"></a>

EventBridge juga mencakup data kesalahan, jika tersedia, dalam langkah-langkah eksekusi pipa yang mewakili status kegagalan. Langkah-langkah ini meliputi:
+ `ExecutionThrottled`
+ `ExecutionTimeout`
+ `ExecutionFailed`
+ `ExecutionPartiallyFailed`
+ `EnrichmentTransformationFailed`
+ `EnrichmentInvocationFailed`
+ `EnrichmentStageFailed`
+ `TargetTransformationFailed`
+ `TargetInvocationFailed`
+ `TargetInvocationPartiallyFailed`
+ `TargetStageFailed`
+ `TargetStagePartiallyFailed`

# EventBridge Langkah eksekusi pipa
<a name="eb-pipes-logs-execution-steps"></a>

Memahami alur langkah eksekusi pipa dapat membantu Anda dalam pemecahan masalah atau men-debug kinerja pipa Anda menggunakan log.

*Eksekusi* pipa adalah peristiwa atau kumpulan peristiwa yang diterima oleh pipa yang melakukan perjalanan ke pengayaan atau target. Jika diaktifkan, EventBridge buat catatan log untuk setiap langkah eksekusi yang dilakukannya saat batch acara diproses. 

Pada tingkat tinggi, eksekusi berisi dua *tahap*, atau kumpulan langkah: pengayaan, dan target. Masing-masing tahapan ini terdiri dari langkah-langkah transformasi dan doa.

Langkah-langkah utama dari eksekusi pipa yang sukses mengikuti aliran ini:
+ Eksekusi pipa dimulai.
+ Eksekusi memasuki tahap pengayaan jika Anda telah menentukan pengayaan untuk acara tersebut. Jika Anda belum menentukan pengayaan, eksekusi berlanjut ke tahap target.

  Pada tahap pengayaan, pipa melakukan transformasi apa pun yang telah Anda tentukan, lalu memanggil pengayaan.
+ Pada tahap target, pipa melakukan transformasi apa pun yang telah Anda tentukan, lalu memanggil target. 

  Jika Anda belum menentukan transformasi atau target, eksekusi akan melewati tahap target.
+ Eksekusi pipa selesai dengan sukses.

Diagram di bawah ini menunjukkan aliran ini. Jalur divergen diformat sebagai garis putus-putus.

![\[Eksekusi pipa termasuk tahap pengayaan dan target, dengan langkah-langkah transformasi dan pemanggilan.\]](http://docs.aws.amazon.com/id_id/eventbridge/latest/userguide/images/pipes-logging-overview_eventbridge_architecture.svg)


Diagram di bawah ini menyajikan tampilan rinci dari aliran eksekusi pipa, dengan semua langkah eksekusi yang mungkin diwakili. Sekali lagi, jalur divergen diformat sebagai garis putus-putus

Untuk daftar lengkap langkah eksekusi pipa, lihat[Menentukan tingkat log EventBridge Pipa](eb-pipes-logs.md#eb-pipes-logs-level).

![\[Aliran eksekusi pipa, termasuk semua tahapan dan langkah dengan semua hasil yang mungkin.\]](http://docs.aws.amazon.com/id_id/eventbridge/latest/userguide/images/pipes-logging-detailed_eventbridge_architecture.svg)


Perhatikan bahwa pemanggilan target dapat mengakibatkan kegagalan sebagian batch. Untuk informasi selengkapnya, lihat [Perilaku batching](eb-pipes-batching-concurrency.md#pipes-batching).

# EventBridge Referensi skema log pipa
<a name="eb-pipes-logs-schema"></a>

Referensi berikut merinci skema untuk catatan log EventBridge Pipa.

Setiap catatan log mewakili langkah eksekusi pipa, dan dapat berisi hingga 10.000 peristiwa jika sumber pipa dan target telah dikonfigurasi untuk batching.

Untuk informasi selengkapnya, lihat [Pencatatan kinerja Amazon EventBridge Pipes](eb-pipes-logs.md).

```
{
    "executionId": "guid",
    "timestamp": "date_time",
    "messageType": "execution_step",
    "resourceArn": "arn:aws:pipes:region:account:pipe/pipe-name",
    "logLevel": "TRACE | INFO | ERROR",
    "payload": "{}",
    "awsRequest": "{}"
    "awsResponse":"{}"
    "truncatedFields": ["awsRequest","awsResponse","payload"],
    "error": {
        "httpStatusCode": code,
        "message": "error_message",
        "details": "",
        "awsService": "service_name",
        "requestId": "service_request_id"
    }
}
```

**ExecutionID**  <a name="pipe-log-schema-execution-id"></a>
ID eksekusi pipa.  
Eksekusi pipa adalah peristiwa atau kumpulan peristiwa yang diterima oleh pipa yang melakukan perjalanan ke pengayaan atau target. Untuk informasi selengkapnya, lihat [Cara kerja pencatatan Amazon EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-overview).

**timestamp**  <a name="pipe-log-schema-timestamp"></a>
Tanggal dan waktu peristiwa log dipancarkan.  
Satuan: milidetik

**messageType**  <a name="pipe-log-schema-message-type"></a>
Langkah eksekusi pipa tempat catatan dihasilkan.  
Untuk informasi selengkapnya tentang langkah-langkah eksekusi pipa, lihat[EventBridge Langkah eksekusi pipa](eb-pipes-logs-execution-steps.md).

**resourceArn**  <a name="pipe-log-schema-resource-arn"></a>
Nama Sumber Daya Amazon (ARN) untuk pipa.

**logLevel**  <a name="pipe-log-schema-loglevel"></a>
Tingkat detail yang ditentukan untuk log pipa.  
*Nilai yang valid*: `ERROR` \$1 `INFO` \$1 `TRACE`  
Untuk informasi selengkapnya, lihat [Menentukan tingkat log EventBridge Pipa](eb-pipes-logs.md#eb-pipes-logs-level).

**payload**  <a name="pipe-log-schema-payload"></a>
Isi batch acara sedang diproses oleh pipa.  
EventBridge termasuk bidang ini hanya jika Anda telah menentukan untuk menyertakan data eksekusi dalam log untuk pipa ini. Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data)  
Bidang ini mungkin berisi informasi sensitif. EventBridge tidak berusaha untuk menyunting konten bidang ini selama pencatatan.
Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

**AWSRequest**  <a name="pipe-log-schema-aws-request"></a>
Permintaan dikirim ke pengayaan atau target, dalam format JSON. Untuk permintaan yang dikirim ke tujuan API, ini mewakili permintaan HTTP yang dikirim ke titik akhir tersebut.  
EventBridge termasuk bidang ini hanya jika Anda telah menentukan untuk menyertakan data eksekusi dalam log untuk pipa ini. Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data)  
Bidang ini mungkin berisi informasi sensitif. EventBridge tidak berusaha untuk menyunting konten bidang ini selama pencatatan.
Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

**AWSResponse**  <a name="pipe-log-schema-aws-response"></a>
Respons dikembalikan oleh pengayaan atau target, dalam format JSON. Untuk permintaan yang dikirim ke tujuan API, ini mewakili respons HTTP yang dikembalikan dari titik akhir tersebut, dan bukan respons yang dikembalikan oleh layanan Tujuan API itu sendiri.  
EventBridge termasuk bidang ini hanya jika Anda telah menentukan untuk menyertakan data eksekusi dalam log untuk pipa ini. Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data)  
Bidang ini mungkin berisi informasi sensitif. EventBridge tidak berusaha untuk menyunting konten bidang ini selama pencatatan.
Untuk informasi selengkapnya, lihat [Termasuk data eksekusi di log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

**Terpotong Fields**  <a name="pipe-log-schema-truncated-fields"></a>
Daftar bidang data eksekusi EventBridge telah dipotong untuk menyimpan catatan di bawah batasan ukuran 256 KB.  
Jika EventBridge tidak harus memotong salah satu bidang data eksekusi, bidang ini hadir tetapi. `null`  
Untuk informasi selengkapnya, lihat [Mempotong data eksekusi dalam catatan log EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data-truncation).

**kesalahan**  <a name="pipe-log-schema-error"></a>
Berisi informasi untuk setiap kesalahan yang dihasilkan selama langkah eksekusi pipa ini.   
Jika tidak ada kesalahan yang dihasilkan selama langkah eksekusi pipa ini, bidang ini ada tetapi`null`.    
**httpStatusCode**  <a name="pipe-log-schema-http-status-code"></a>
Kode status HTTP dikembalikan oleh layanan yang disebut.  
**pesan**  <a name="pipe-log-schema-message"></a>
Pesan kesalahan dikembalikan oleh layanan yang disebut.  
**rincian**  <a name="pipe-log-schema-details"></a>
Setiap informasi kesalahan terperinci yang dikembalikan oleh layanan yang disebut.  
**AWSService**  <a name="pipe-log-schema-aws-service"></a>
Nama layanan yang disebut.  
**RequesTid**  <a name="pipe-log-schema-request-id"></a>
ID permintaan untuk permintaan ini dari layanan yang disebut.

# Pencatatan dan pemantauan EventBridge Pipa Amazon menggunakan Amazon CloudWatch Logs
<a name="eb-pipes-monitoring"></a>

Anda dapat mencatat pemanggilan EventBridge Pipa menggunakan CloudTrail dan memantau kesehatan pipa Anda menggunakan CloudWatch metrik.

## CloudWatch metrik
<a name="pipes-monitoring-cloudwatch"></a>

EventBridge Pipes mengirimkan metrik ke Amazon CloudWatch setiap menit untuk segala hal mulai dari eksekusi pipa yang dibatasi hingga target yang berhasil dipanggil.


| Metrik | Deskripsi | Dimensi | Unit | 
| --- | --- | --- | --- | 
|  `Concurrency`  |  Jumlah eksekusi pipa secara bersamaan.  | AwsAccountId | Tidak ada | 
| `Duration` |  Lama waktu eksekusi pipa berlangsung.  | PipeName | Milidetik | 
|  `EventCount`  |  Jumlah peristiwa yang telah diproses pipa.  | PipeName | Tidak ada | 
|  `EventSize`  |  Ukuran muatan acara yang memanggil pipa.  | PipeName | Byte | 
|  `ExecutionThrottled`  |  Berapa banyak eksekusi pipa yang dibatasi.  Nilai ini akan menjadi `0` jika tidak ada eksekusi yang dibatasi.   | AwsAccountId, PipeName | Tidak ada | 
|  `ExecutionTimeout`  |  Berapa banyak eksekusi pipa yang habis waktunya sebelum menyelesaikan eksekusi.  Nilai ini akan menjadi `0` jika tidak ada eksekusi yang habis waktunya.   | PipeName | Tidak ada | 
|  `ExecutionFailed`  |  Berapa banyak eksekusi pipa yang gagal.  Nilai ini akan terjadi `0` jika tidak ada eksekusi yang gagal.   | PipeName | Tidak ada | 
|  `ExecutionPartiallyFailed`  |  Berapa banyak eksekusi pipa yang sebagian gagal.  Nilai ini akan menjadi `0` jika tidak ada eksekusi sebagian gagal.   | PipeName | Tidak ada | 
|  `EnrichmentStageDuration`  |  Berapa lama tahap pengayaan selesai.  | PipeName | Milidetik | 
|  `EnrichmentStageFailed`  |  Berapa banyak eksekusi tahap pengayaan pipa yang gagal.  Nilai ini akan terjadi `0` jika tidak ada eksekusi yang gagal.   | PipeName | Tidak ada | 
| `Invocations` |  Jumlah total doa.  | AwsAccountId, PipeName | Tidak ada | 
|  `TargetStageDuration`  |  Berapa lama tahap target selesai.  | PipeName | Milidetik | 
|  `TargetStageFailed`  |  Berapa banyak eksekusi tahap target pipa yang gagal.  Nilai ini akan terjadi `0` jika tidak ada eksekusi yang gagal.   | PipeName | Tidak ada | 
| `TargetStagePartiallyFailed` | Berapa banyak eksekusi tahap target pipa yang sebagian gagal.  Nilai ini akan menjadi `0` jika tidak ada eksekusi tahap target yang gagal sebagian.   | PipeName | Tidak ada | 
| `TargetStageSkipped` | Berapa banyak eksekusi tahap target pipa yang dilewati (misalnya, karena pengayaan mengembalikan muatan kosong).  | PipeName | Hitungan | 

## Dimensi untuk CloudWatch metrik
<a name="pipes-monitoring-cloudwatch-dimensions"></a>

CloudWatch metrik memiliki *dimensi*, atau atribut yang dapat diurutkan, yang tercantum di bawah ini.


|  Dimensi  |  Deskripsi  | 
| --- | --- | 
|  AwsAccountId  |  Memfilter metrik yang tersedia berdasarkan ID akun.  | 
|  PipeName  |  Memfilter metrik yang tersedia berdasarkan nama pipa.  | 

# Penanganan kesalahan dan pemecahan masalah Amazon EventBridge Pipes
<a name="eb-pipes-error-troubleshooting"></a>

Memahami jenis kesalahan yang mungkin dihadapi EventBridge Pipa, dan bagaimana EventBridge menangani kesalahan tersebut, dapat membantu Anda memecahkan masalah dengan pipa Anda.

## Coba lagi perilaku dan penanganan kesalahan
<a name="eb-pipes-error-handling"></a>

EventBridge Pipa secara otomatis mencoba ulang pengayaan dan target pemanggilan pada setiap AWS kegagalan yang dapat dicoba kembali dengan layanan sumber, pengayaan atau layanan target, atau. EventBridge Namun, jika ada kegagalan yang dikembalikan oleh pengayaan atau implementasi target pelanggan, throughput pemungutan suara pipa secara bertahap akan mundur. Untuk kesalahan 4xx yang hampir terus menerus (seperti masalah otorisasi dengan IAM atau sumber daya yang hilang), pipa dapat dinonaktifkan secara otomatis dengan pesan penjelasan di. `StateReason`

## Kesalahan pemanggilan pipa dan perilaku coba lagi
<a name="eb-pipes-error-invoke"></a>

Saat Anda memanggil pipa, dua jenis kesalahan utama dapat terjadi: kesalahan *internal pipa dan kesalahan* *pemanggilan pelanggan*.

### Kesalahan internal pipa
<a name="eb-pipes-error-invoke-internal"></a>

Kesalahan internal pipa adalah kesalahan yang dihasilkan oleh aspek pemanggilan yang dikelola oleh layanan EventBridge Pipa. 

Jenis kesalahan ini dapat mencakup masalah seperti:
+ Kegagalan koneksi HTTP saat mencoba memanggil layanan target pelanggan
+ Penurunan ketersediaan sementara pada layanan pipa itu sendiri.

Secara umum, EventBridge Pipes mencoba ulang kesalahan internal dalam jumlah yang tidak terbatas, dan berhenti hanya ketika catatan kedaluwarsa di sumbernya. 

Untuk pipa dengan sumber aliran, EventBridge Pipa tidak menghitung percobaan ulang untuk kesalahan internal terhadap jumlah maksimum percobaan ulang yang ditentukan pada kebijakan coba lagi untuk sumber aliran. Untuk pipa dengan sumber Amazon SQS, EventBridge Pipes tidak menghitung percobaan ulang untuk kesalahan internal terhadap jumlah penerimaan maksimum untuk sumber Amazon SQS. 

### Kesalahan pemanggilan pelanggan
<a name="eb-pipes-error-invoke-customer"></a>

Kesalahan pemanggilan pelanggan adalah kesalahan yang dihasilkan dari konfigurasi atau kode yang dikelola oleh pengguna. 

Jenis kesalahan ini dapat mencakup masalah seperti:
+ Izin yang tidak memadai pada pipa untuk memanggil target.
+ Kesalahan logika pada titik akhir Lambda, Step Functions, API destination, atau API Gateway pelanggan yang dipanggil secara sinkron.

Untuk kesalahan pemanggilan pelanggan, EventBridge Pipes melakukan hal berikut:
+ Untuk pipa dengan sumber aliran, EventBridge Pipes mencoba ulang hingga waktu percobaan ulang maksimum yang dikonfigurasi pada kebijakan coba lagi pipa atau sampai usia catatan maksimum berakhir, mana yang lebih dulu.
+ Untuk pipa dengan sumber Amazon SQS, EventBridge Pipes mencoba ulang kesalahan pelanggan hingga jumlah penerimaan maksimum pada antrian sumber.
+ Untuk pipa dengan sumber Apache Kafka atau Amazon MQ EventBridge , coba lagi kesalahan pelanggan sama seperti mencoba ulang kesalahan internal.

Untuk pipa dengan target komputasi, Anda harus memanggil pipa secara serempak agar EventBridge Pipes mengetahui kesalahan runtime yang dilemparkan dari logika komputasi pelanggan dan mencoba lagi kesalahan tersebut. Pipa tidak dapat mencoba lagi kesalahan yang dilemparkan dari logika alur kerja standar Step Functions, karena target ini harus dipanggil secara asinkron.

Untuk Amazon SQS dan sumber aliran, seperti Kinesis dan DynamoDB, Pipes mendukung penanganan kegagalan batch sebagian dari EventBridge kegagalan target. Untuk informasi selengkapnya, lihat [Kegagalan batch sebagian](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-batching-concurrency.html#pipes-partial-batch-failure).

## Waktu coba lagi sumber Amazon SQS dengan maxBatchWindow InSeconds
<a name="eb-pipes-sqs-retry-timing"></a>

Saat menggunakan antrean Amazon SQS sebagai sumber pipa, perilaku waktu coba lagi berbeda tergantung pada apakah Anda mengonfigurasi parameter: `maxBatchWindowInSeconds`
+ **Tanpa maxBatchWindow InSeconds** - Poller SQS menggunakan pengaturan batas waktu visibilitas antrian untuk percobaan ulang. Saat pemrosesan gagal, pesan tetap disembunyikan selama durasi batas waktu visibilitas sebelum tersedia untuk dicoba lagi. Untuk mengurangi penundaan coba lagi, konfigurasikan batas waktu visibilitas antrian ke nilai yang sesuai untuk kasus penggunaan Anda.
+ **Dengan maxBatchWindow InSeconds** — Poller SQS secara dinamis menetapkan batas waktu visibilitas untuk pesan yang disurvei menggunakan rumus:. `functionTimeout + maxBatchWindowInSeconds + 30 seconds` Untuk EventBridge Pipes, batas waktu fungsi adalah 7 menit, menghasilkan batas waktu visibilitas sekitar 7,5 menit ditambah nilai konfigurasi Anda. `maxBatchWindowInSeconds` Saat pemrosesan gagal, pesan tetap tersembunyi selama durasi yang diperpanjang ini sebelum tersedia untuk dicoba lagi.

Perilaku ini sangat relevan saat menggunakan [respons batch sebagian](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure). Jika Anda memerlukan waktu coba ulang yang lebih cepat, hindari pengaturan `maxBatchWindowInSeconds` dan sebagai gantinya mengandalkan batas waktu visibilitas antrian yang dikonfigurasi.

## Perilaku pipa DLQ
<a name="eb-pipes-dlq-behavior"></a>

Pipa mewarisi perilaku antrian huruf mati (DLQ) dari sumbernya: 
+ Jika antrian Amazon SQS sumber memiliki DLQ yang dikonfigurasi, pesan secara otomatis dikirim ke sana setelah jumlah upaya yang ditentukan. 
+ Untuk sumber aliran, seperti aliran DynamoDB dan Kinesis, Anda dapat mengonfigurasi DLQ untuk peristiwa pipa dan rute. Sumber aliran DynamoDB dan Kinesis mendukung antrian Amazon SQS dan topik Amazon SNS sebagai target DLQ.

Jika Anda menentukan `DeadLetterConfig` untuk pipa dengan sumber Kinesis atau DynamoDB, pastikan bahwa `MaximumRecordAgeInSeconds` properti pada pipa kurang dari peristiwa sumber. `MaximumRecordAge` `MaximumRecordAgeInSeconds`mengontrol kapan poller pipa akan menyerah pada acara tersebut dan mengirimkannya ke DLQ dan `MaximumRecordAge` mengontrol berapa lama pesan akan terlihat di aliran sumber sebelum dihapus. Oleh karena itu, atur `MaximumRecordAgeInSeconds` ke nilai yang kurang dari sumbernya `MaximumRecordAge` sehingga ada waktu yang cukup antara saat acara dikirim ke DLQ, dan kapan itu dihapus secara otomatis oleh sumber bagi Anda untuk menentukan mengapa acara tersebut masuk ke DLQ.

`MaximumRecordAgeInSeconds`Parameter berlaku secara independen dari perilaku coba lagi. Saat melakukan polling sumber aliran, jika usia rekaman melebihi `MaximumRecordAgeInSeconds` nilainya, EventBridge Pipes tidak akan memproses catatan itu, terlepas dari apakah ada situasi percobaan ulang. Catatan ini dikirim langsung ke DLQ (jika dikonfigurasi) tanpa upaya pemrosesan apa pun.

Untuk sumber Amazon MQ, DLQ dapat dikonfigurasi langsung di broker pesan.

EventBridge Pipa tidak mendukung first-in first-out (FIFO) DLQs untuk sumber aliran.

EventBridge Pipes tidak mendukung DLQ untuk aliran MSK Amazon dan sumber aliran Apache Kafka yang dikelola sendiri.

## Status kegagalan pipa
<a name="eb-pipes-failure-states"></a>

Membuat, menghapus, dan memperbarui pipa adalah operasi asinkron yang dapat mengakibatkan status kegagalan. Demikian juga, pipa mungkin dinonaktifkan secara otomatis karena kegagalan. Dalam semua kasus, pipa `StateReason` memberikan informasi untuk membantu memecahkan masalah kegagalan.

Berikut ini adalah contoh dari `StateReason` nilai yang mungkin:
+ Stream tidak ditemukan. Untuk melanjutkan pemrosesan, hapus pipa dan buat yang baru.
+ Pipa tidak memiliki izin yang diperlukan untuk melakukan operasi Antrian (sqs:ReceiveMessage, sqs: dan sqs:DeleteMessage ) GetQueueAttributes
+ Kesalahan koneksi. VPC Anda harus dapat terhubung ke pipa. Anda dapat memberikan akses dengan mengonfigurasi NAT Gateway atau VPC Endpoint ke pipes-data. Untuk cara mengatur gateway NAT atau VPC Endpoint ke pipes-data, silakan periksa dokumentasi. AWS 
+ Kluster MSK tidak memiliki grup keamanan yang terkait dengannya

Pipa dapat dihentikan secara otomatis dengan pembaruan`StateReason`. Alasan yang mungkin termasuk:
+ Alur kerja standar Step Functions dikonfigurasi sebagai [pengayaan](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html#pipes-enrichment).
+ Alur kerja standar Step Functions dikonfigurasi sebagai target untuk [dipanggil secara sinkron](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html#pipes-invocation).

## Kegagalan enkripsi khusus
<a name="eb-pipes-error-handling-cms"></a>

Jika Anda mengonfigurasi sumber untuk menggunakan kunci enkripsi AWS KMS kustom (CMK), bukan AWS KMS kunci yang AWS dikelola, Anda harus secara eksplisit memberikan izin dekripsi Peran Eksekusi pipa Anda. Untuk melakukannya, sertakan izin tambahan berikut dalam kebijakan CMK kustom:

```
  {
      "Sid": "Allow Pipes access",
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::01234567890:role/service-role/Amazon_EventBridge_Pipe_DDBStreamSourcePipe_12345678"
      },
      "Action": "kms:Decrypt",
      "Resource": "*"
  }
```

Ganti peran di atas dengan Peran Eksekusi pipa Anda.

Selanjutnya, pastikan bahwa izin yang sama untuk KMS ditambahkan ke peran eksekusi Pipa Anda.

Hal ini berlaku untuk semua sumber pipa dengan AWS KMS CMK, termasuk:
+ Amazon DynamoDB Streams
+ Amazon Kinesis Data Streams
+ Amazon MQ
+ Amazon MSK
+ Amazon SQS

# Tutorial: Buat EventBridge pipa yang memfilter peristiwa sumber
<a name="pipes-tutorial-create-dynamodb-sqs"></a>

Dalam tutorial ini, Anda akan membuat pipa yang menghubungkan sumber aliran DynamoDB ke target antrian Amazon SQS. Ini termasuk menentukan pola peristiwa untuk pipa yang akan digunakan saat memfilter peristiwa untuk dikirim ke antrian. Anda kemudian akan menguji pipa untuk memastikan bahwa hanya acara yang diinginkan yang dikirimkan.

## Prasyarat: Buat sumber dan target
<a name="pipes-tutorial-create-dynamodb-sqs-prereqs"></a>

Sebelum Anda membuat pipa, Anda harus membuat sumber dan menargetkan bahwa pipa akan terhubung. Dalam hal ini, aliran data Amazon DynamoDB bertindak sebagai sumber pipa, dan antrian Amazon SQS sebagai target pipa.

Untuk menyederhanakan langkah ini, Anda dapat menggunakan AWS CloudFormation untuk menyebarkan sumber dan sumber daya target. Untuk melakukan ini, Anda akan membuat CloudFormation template yang mendefinisikan sumber daya berikut:
+ Sumber pipa 

  Tabel Amazon DynamoDB, `pipe-tutorial-source` bernama, dengan aliran diaktifkan untuk menyediakan aliran informasi yang diurutkan tentang perubahan item dalam tabel DynamoDB.
+ Target pipa 

  Antrian Amazon SQS, bernama`pipe-tutorial-target`, untuk menerima aliran peristiwa DynamoDB dari pipa Anda.

**Untuk membuat CloudFormation template untuk penyediaan sumber daya pipa**

1. Salin teks template JSON di [CloudFormation template untuk menghasilkan prasyarat](#pipes-tutorial-create-cfn-template) bagian, di bawah ini.

1. Simpan template sebagai file JSON (misalnya,`~/pipe-tutorial-resources.json`).

Selanjutnya, gunakan file template yang baru saja Anda buat untuk menyediakan CloudFormation tumpukan.

**catatan**  
Setelah Anda membuat CloudFormation tumpukan Anda, Anda akan dikenakan biaya untuk AWS sumber daya yang disediakannya.

**Menyediakan prasyarat tutorial menggunakan CLI AWS**
+ Jalankan perintah CLI berikut, di mana `--template-body` menentukan lokasi file template Anda:

  ```
  aws cloudformation create-stack --stack-name pipe-tuturial-resources --template-body file://~/pipe-tutorial-resources.json
  ```

**Ketentuan prasyarat tutorial menggunakan konsol CloudFormation**

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pilih **Tumpukan**, lalu pilih **Buat tumpukan**, dan pilih **dengan sumber daya baru (standar)**.

   CloudFormation menampilkan wizard **Buat tumpukan**.

1. Untuk **Prasyarat - Siapkan template**, biarkan default, **Template siap, dipilih**.

1. Di bawah **Tentukan templat**, pilih **Unggah file templat**, lalu pilih file dan pilih **Berikutnya**.

1. Konfigurasikan tumpukan dan sumber daya yang akan disediakannya:
   + Untuk **Nama tumpukan**, masukkan `pipe-tuturial-resources`.
   + Untuk **Parameter**, tinggalkan nama default untuk tabel DynamoDB dan antrian Amazon SQS.
   + Pilih **Berikutnya**.

1. Pilih **Berikutnya**, lalu pilih **Kirim**.

   CloudFormation membuat tumpukan dan menyediakan sumber daya yang ditentukan dalam template.

Untuk informasi lebih lanjut tentang CloudFormation, lihat [Apa itu CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) dalam *CloudFormation User Guide*.

## Langkah 1: Buat pipa
<a name="pipes-tutorial-create-dynamodb-sqs-create-pipe"></a>

Dengan sumber pipa dan target yang disediakan, Anda sekarang dapat membuat pipa untuk menghubungkan dua layanan.

**Buat pipa menggunakan EventBridge konsol**

1. Buka EventBridge konsol Amazon di [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Pada panel navigasi, pilih **Pipa**.

1. Pilih **Buat pipa**.

1. Untuk **Nama**, beri nama pipa Anda`pipe-tutorial`.

1. Tentukan sumber aliran data DynamoDB:

   1. Di bawah **Detail**, untuk **Sumber**, pilih aliran data **DynamoDB**.

      EventBridge menampilkan pengaturan konfigurasi sumber khusus DynamoDB.

   1. Untuk aliran **DynamoDB**, pilih. `pipe-tutorial-source`

      Biarkan **posisi Mulai** diatur ke default,`Latest`.

   1. Pilih **Berikutnya**.

1. Tentukan dan uji pola acara untuk memfilter peristiwa:

   Penyaringan memungkinkan Anda untuk mengontrol peristiwa mana yang dikirim pipa ke pengayaan atau target. Pipa hanya mengirimkan peristiwa yang cocok dengan pola acara ke pengayaan atau target.

   Untuk informasi selengkapnya, lihat [Pemfilteran acara di Amazon Pipes EventBridge](eb-pipes-event-filtering.md).
**catatan**  
Anda hanya ditagih untuk acara-acara yang dikirim ke pengayaan atau target.

   1. Di bawah **Contoh acara - *opsional***, biarkan **AWS acara** dipilih, dan pastikan bahwa **DynamoDB Stream Sample event** 1 dipilih.

      Ini adalah contoh acara yang akan Anda gunakan untuk menguji pola acara kami.

   1. Di bawah **pola Peristiwa**, masukkan pola acara berikut:

      ```
      {
        "eventName": ["INSERT", "MODIFY"]
      }
      ```

   1. Pilih **Pola uji**.

      EventBridge menampilkan pesan bahwa peristiwa sampel cocok dengan pola acara. Ini karena peristiwa sampel memiliki `eventName` nilai`INSERT`.

   1. Pilih **Berikutnya**.

1. Pilih **Berikutnya** untuk melewatkan menentukan pengayaan. 

   Dalam contoh ini, Anda tidak akan memilih pengayaan. Pengayaan memungkinkan Anda memilih layanan untuk meningkatkan data dari sumber sebelum mengirimkannya ke target. Untuk detail selengkapnya, lihat [Pengayaan acara di Amazon Pipes EventBridge](pipes-enrichment.md).

1. Tentukan antrean Amazon SQS Anda sebagai target pipa:

   1. Di bawah **Detail**, untuk **layanan Target**, pilih **antrean Amazon SQS.**

   1. Untuk **Antrian**, pilih`pipe-tutorial-target`.

   1. Biarkan bagian **transformator Input Target** kosong.

      Untuk informasi selengkapnya, lihat [Transformasi masukan Amazon EventBridge Pipes](eb-pipes-input-transformation.md).

1. Pilih **Buat Pipa**

   EventBridge membuat pipa dan menampilkan halaman detail pipa. Pipa siap setelah statusnya diperbarui ke`Running`.

## Langkah 2: Konfirmasikan peristiwa filter pipa
<a name="pipes-tutorial-create-dynamodb-sqs-test"></a>

Pipa diatur, tetapi belum menerima acara dari meja.

Untuk menguji pipa, Anda akan memperbarui entri dalam tabel DynamoDB. Setiap pembaruan akan menghasilkan peristiwa yang dikirim aliran DynamoDB ke pipa kami. Beberapa akan cocok dengan pola acara yang Anda tentukan, beberapa tidak. Anda kemudian dapat memeriksa antrean Amazon SQS untuk memastikan bahwa pipa hanya mengirimkan peristiwa yang cocok dengan pola acara kami.

**Perbarui item tabel untuk menghasilkan acara**

1. Buka konsol DynamoDB di. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Dari navigasi kiri, pilih **Tabel**. Pilih `pipe-tutorial-source` tabel.

   DynamoDB menampilkan halaman rincian tabel untuk. `pipe-tutorial-source`

1. Pilih **Jelajahi item tabel**, lalu pilih **Buat item**.

   DynamoDB menampilkan halaman Create item**.**

1. Di bawah **Atribut**, buat item tabel baru:

   1. Untuk **Album** masuk`Album A`.

   1. Untuk **Artis** masuk`Artist A`.

   1. Pilih **Buat item**.

1. Perbarui item tabel:

   1. Di bawah **Item yang dikembalikan**, pilih **Album A**.

   1. Pilih **Tambahkan atribut baru**, lalu pilih **String**.

   1. Masukkan nilai baru`Song`, dengan nilai`Song A`.

   1. Pilih **Simpan perubahan**.

1. Hapus item tabel:

   1. Di bawah **Item yang dikembalikan**, periksa **Album A**.

   1. Dari menu **Tindakan**, pilih **Hapus item**.

Anda telah membuat tiga pembaruan pada item tabel; ini menghasilkan tiga peristiwa untuk aliran data DynamoDB:
+ `INSERT`Peristiwa saat Anda membuat item.
+ Sebuah `MODIFY` peristiwa ketika Anda menambahkan atribut ke item.
+ `REMOVE`Peristiwa saat Anda menghapus item.

Namun, pola acara yang Anda tentukan untuk pipa harus menyaring setiap peristiwa yang bukan `INSERT` atau `MODIFY` peristiwa. Selanjutnya, konfirmasikan bahwa pipa mengirimkan peristiwa yang diharapkan ke antrian.

**Konfirmasikan peristiwa yang diharapkan telah dikirimkan ke antrian**

1. Buka konsol Amazon SQS di. [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)

1. Pilih `pipe-tutorial-target` antrian.

   Amazon SQS menampilkan halaman detail antrian.

1. Pilih **Kirim dan terima pesan**, lalu di bawah **Menerima pesan** pilih **Poll untuk pesan**.

   Antrian polling pipa dan kemudian daftar peristiwa yang diterimanya.

1. Pilih nama acara untuk melihat acara JSON yang telah disampaikan.

 Harus ada dua peristiwa dalam antrian: satu dengan `eventName` dari`INSERT`, dan satu dengan `eventName` dari. `MODIFY` Namun, pipa tidak mengirimkan acara untuk menghapus item tabel, karena peristiwa itu memiliki `eventName` of`REMOVE`, yang tidak cocok dengan pola acara yang Anda tentukan dalam pipa.

## Langkah 3: Bersihkan sumber daya Anda
<a name="pipes-tutorial-create-dynamodb-sqs-cleanup"></a>

Pertama, hapus pipa itu sendiri.

**Hapus pipa menggunakan EventBridge konsol**

1. Buka EventBridge konsol Amazon di [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Pada panel navigasi, pilih **Pipa**.

1. Pilih `pipe-tutorial` pipa, dan pilih **Hapus**.

Kemudian, hapus CloudFormation tumpukan, untuk mencegah ditagih untuk penggunaan berkelanjutan dari sumber daya yang disediakan di dalamnya.

**Hapus prasyarat tutorial menggunakan CLI AWS**
+ Jalankan perintah CLI berikut, di mana `--stack-name` menentukan nama tumpukan Anda:

  ```
  aws cloudformation delete-stack --stack-name pipe-tuturial-resources
  ```

**Hapus prasyarat tutorial menggunakan konsol CloudFormation**

1. Buka CloudFormation konsol di [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Pada halaman **Stacks**, pilih tumpukan dan kemudian pilih **Hapus**.

1. Pilih **Hapus** untuk mengonfirmasi tindakan Anda.

## CloudFormation template untuk menghasilkan prasyarat
<a name="pipes-tutorial-create-cfn-template"></a>

Gunakan JSON di bawah ini untuk membuat CloudFormation template untuk menyediakan sumber dan sumber daya target yang diperlukan untuk tutorial ini.

```
{
  "AWSTemplateFormatVersion": "2010-09-09",

  "Description" : "Provisions resources to use with the EventBridge Pipes tutorial. You will be billed for the AWS resources used if you create a stack from this template.",

  "Parameters" : {
    "SourceTableName" : {
      "Type" : "String",
      "Default" : "pipe-tutorial-source",
      "Description" : "Specify the name of the table to provision as the pipe source, or accept the default."
    },
    "TargetQueueName" : {
      "Type" : "String",
      "Default" : "pipe-tutorial-target",
      "Description" : "Specify the name of the queue to provision as the pipe target, or accept the default."
    }
  },
  "Resources": {
    "PipeTutorialSourceDynamoDBTable": {
      "Type": "AWS::DynamoDB::Table",
      "Properties": {
        "AttributeDefinitions": [{
            "AttributeName": "Album",
            "AttributeType": "S"
          },
          {
            "AttributeName": "Artist",
            "AttributeType": "S"
          }

        ],
        "KeySchema": [{
            "AttributeName": "Album",
            "KeyType": "HASH"

          },
          {
            "AttributeName": "Artist",
            "KeyType": "RANGE"
          }
        ],
        "ProvisionedThroughput": {
          "ReadCapacityUnits": 10,
          "WriteCapacityUnits": 10
        },
        "StreamSpecification": {
          "StreamViewType": "NEW_AND_OLD_IMAGES"
        },
        "TableName": { "Ref" : "SourceTableName" }
      }
    },
    "PipeTutorialTargetQueue": {
      "Type": "AWS::SQS::Queue",
      "Properties": {
        "QueueName": { "Ref" : "TargetQueueName" }
      }
    }
  }
}
```

# Menghasilkan CloudFormation template dari EventBridge Pipes
<a name="pipes-generate-template"></a>

AWS CloudFormation memungkinkan Anda mengonfigurasi dan mengelola AWS sumber daya Anda di seluruh akun dan wilayah secara terpusat dan berulang dengan memperlakukan infrastruktur sebagai kode. CloudFormation melakukan ini dengan membiarkan Anda membuat *template*, yang menentukan sumber daya yang ingin Anda sediakan dan kelola.

EventBridge memungkinkan Anda untuk membuat template dari pipa yang ada di akun Anda, sebagai bantuan untuk membantu Anda mulai mengembangkan CloudFormation template. Anda dapat memilih satu pipa, atau beberapa pipa untuk disertakan dalam template. Anda kemudian dapat menggunakan template ini sebagai dasar untuk [membuat tumpukan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) sumber daya yang CloudFormation dikelola.

Untuk informasi selengkapnya CloudFormation, lihat [*Panduan CloudFormation Pengguna*.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

Untuk bus acara, Anda dapat membuat CloudFormation template dari [bus acara](eb-generate-event-bus-template.md) [dan aturan bus acara](rule-generate-template.md).

## Sumber daya termasuk dalam template EventBridge Pipa
<a name="pipes-generate-template-resources"></a>

Ketika EventBridge menghasilkan CloudFormation template, itu menciptakan [AWS::Pipes::Pipe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html)sumber daya untuk setiap pipa yang dipilih. Selain itu, EventBridge termasuk sumber daya berikut di bawah kondisi yang dijelaskan:
+ [AWS::Events::ApiDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html)

  Jika pipa Anda menyertakan tujuan API, baik sebagai pengayaan atau target, EventBridge sertakan dalam CloudFormation template sebagai AWS::Events::ApiDestination sumber daya.
+ [AWS::Events::EventBus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html)

  Jika pipa Anda menyertakan bus acara sebagai target, EventBridge sertakan dalam CloudFormation templat sebagai AWS::Events::EventBus sumber daya.
+ [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)

  Jika Anda telah EventBridge membuat peran eksekusi baru saat [mengonfigurasi pipa](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-create.html#pipes-configure-pipe-settings), Anda dapat memilih untuk EventBridge menyertakan peran tersebut dalam templat sebagai AWS::IAM::Role sumber daya. EventBridge tidak termasuk peran yang Anda buat. (Dalam kedua kasus, `RoleArn` properti AWS::Pipes::Pipe sumber daya berisi ARN peran.)

## Pertimbangan saat menggunakan CloudFormation template yang dihasilkan dari Pipes EventBridge
<a name="pipes-generate-template-considerations"></a>

Pertimbangkan faktor-faktor berikut saat menggunakan CloudFormation templat yang Anda hasilkan EventBridge:
+ EventBridge tidak menyertakan kata sandi apa pun dalam template generate.

  Anda dapat mengedit templat untuk menyertakan [parameter templat](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) yang memungkinkan pengguna menentukan kata sandi atau informasi sensitif lainnya saat menggunakan templat untuk membuat atau memperbarui CloudFormation tumpukan.

  Selain itu, pengguna dapat menggunakan Secrets Manager untuk membuat rahasia di wilayah yang diinginkan dan kemudian mengedit template yang dihasilkan untuk menggunakan [parameter dinamis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager).
+ Target dalam template yang dihasilkan tetap persis seperti yang ditentukan dalam pipa asli. Hal ini dapat menyebabkan masalah lintas wilayah jika Anda tidak mengedit template dengan tepat sebelum menggunakannya untuk membuat tumpukan di wilayah lain.

  Selain itu, template yang dihasilkan tidak membuat target hilir secara otomatis.

## Menghasilkan CloudFormation template dari EventBridge Pipes
<a name="pipes-generate-template-console"></a>

Untuk menghasilkan CloudFormation template dari satu atau lebih pipa menggunakan EventBridge konsol, lakukan hal berikut: 

**Untuk menghasilkan CloudFormation template dari satu atau lebih pipa**

1. Buka EventBridge konsol Amazon di [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Di panel navigasi, pilih **Pipa**.

1. Di bawah **Pipa**, pilih satu atau lebih pipa yang ingin Anda sertakan dalam CloudFormation templat yang dihasilkan.

   Untuk satu pipa, Anda juga dapat memilih nama pipa untuk menampilkan halaman detail pipa.

1. Pilih **CloudFormation Template**, lalu pilih format mana yang EventBridge ingin Anda buat template di: **JSON** atau **YAMG**.

   EventBridge menampilkan template, yang dihasilkan dalam format yang dipilih.

1. Jika Anda telah EventBridge membuat peran eksekusi baru untuk salah satu pipa yang dipilih, dan Anda EventBridge ingin menyertakan peran tersebut dalam template, pilih **Sertakan IAM peran yang dibuat oleh konsol atas nama Anda**.

1. EventBridge memberi Anda pilihan untuk mengunduh file template, atau menyalin template ke clipboard.
   + Untuk mengunduh file templat, pilih **Unduh**.
   + **Untuk menyalin template ke clipboard, pilih Salin.**

1. Untuk keluar dari template, pilih **Batal**. 