Amazon Simple Queue Service sebagai sumber di Pipes EventBridge - Amazon EventBridge

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

Amazon Simple Queue Service sebagai sumber di Pipes EventBridge

Anda dapat menggunakan EventBridge Pipes untuk menerima catatan dari SQS antrian Amazon. 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 (AmazonSQS). EventBridge Pipa mendukung antrian standar dan antrian first-in, first-out (). FIFO Dengan AmazonSQS, Anda dapat membongkar tugas dari satu komponen aplikasi Anda dengan mengirimnya ke antrian 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 peristiwa untuk menyangga catatan hingga lima menit dengan mengonfigurasi jendela batch. Sebelum menjalankan pipa, EventBridge terus polling pesan dari antrian SQS standar Amazon 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 SQS antrian Amazon Anda 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 FIFO antrian, catatan berisi atribut tambahan yang terkait dengan deduplikasi dan pengurutan.

Saat EventBridge membaca batch, pesan tetap berada dalam antrian tetapi disembunyikan selama batas waktu visibilitas 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 mengubah 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, lihatPemfilteran acara di Amazon Pipes EventBridge .

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" } ]

FIFOantrian

[ { "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

Untuk antrian standar, EventBridge gunakan polling panjang untuk polling 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 FIFO antrian, EventBridge kirim pesan ke pipa Anda dalam urutan yang diterimanya. Saat mengirim pesan ke FIFO antrian, Anda menentukan ID grup pesan. 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

Buat SQS antrian Amazon 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. 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

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.

Status berhasil dan gagal

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.