Aliran Amazon Kinesis sebagai sumber - Amazon EventBridge

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

Aliran Amazon Kinesis sebagai sumber

Anda dapat menggunakanEventBridgePipa 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. EventBridgePipes menjaga urutan catatan dari aliran data saat mengirim data tersebut ke tujuan.

Aliran data Kinesis adalah serangkaian shard. Setiap shard berisi urutan rekaman data. Konsumen adalah aplikasi yang memproses data dari aliran data Kinesis. Anda dapat memetakanEventBridgePipa ke konsumen throughput bersama (iterator standar), atau ke konsumen throughput khusus denganfan-out yang ditingkatkan.

Untuk iterator standar,EventBridgemenggunakan protokol HTTP untuk polling setiap pecahan di 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 keEventBridgemelalui HTTP/2. Untuk informasi tentang aliran data Kinesis, lihatMembaca Data dari Amazon Kinesis Data Streams.

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, lihatPenyaringan EventBridge Pipa Amazon.

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

EventBridgepolling pecahan di aliran Kinesis Anda untuk catatan dengan kecepatan dasar empat kali per detik. Ketika catatan tersedia,EventBridgememproses acara dan menunggu hasilnya. Jika pemrosesan berhasil,EventBridgemelanjutkan pemungutan suara sampai menerima lebih banyak catatan.

Secara default,EventBridgememanggil pipa Anda segera setelah catatan tersedia. Jika batch ituEventBridgebacaan 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 acara,EventBridgeterus 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 shard secara paralel. EventBridgedapat memproses hingga 10 batch di setiap pecahan secara bersamaan. Jika Anda menambah jumlah batch bersamaan per pecahan,EventBridgemasih memastikan pemrosesan in-order pada tingkat kunci partisi.

KonfigurasikanParallelizationFactorpengaturan untuk memproses satu pecahan aliran data Kinesis atau DynamoDB dengan lebih dari satu eksekusi Pipa secara bersamaan. Anda dapat menentukan jumlah batch bersamaan yangEventBridgejajak pendapat dari pecahan melalui faktor paralelisasi dari 1 (default) ke 10. Misalnya, ketika Anda mengaturParallelizationFactorke 2, Anda dapat memiliki 200 bersamaanEventBridgeEksekusi pipa 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

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 menentukanLATESTsebagai posisi awal untuk aliran, pipa dapat melewatkan acara yang dikirim selama pembuatan atau pembaruan pipa. Untuk memastikan tidak ada peristiwa yang terlewatkan, tentukan posisi awal aliran sebagaiTRIM_HORIZONatauAT_TIMESTAMP.

Melaporkan kegagalan item batch

KapanEventBridgemengkonsumsi dan memproses streaming data dari suatu sumber, secara default itu memeriksa pos 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,EventBridgememperlakukan batch sebagai kesuksesan total:

  • Daftar batchItemFailure kosong

  • Daftar batchItemFailure nol

  • EventResponse kosong

  • EventResponse nol

Jika Anda mengembalikan salah satu dari yang berikut ini,EventBridgememperlakukan batch sebagai kegagalan total:

  • String itemIdentifier kosong

  • itemIdentifier nol

  • itemIdentifier dengan nama kunci yang buruk

EventBridgemencoba kembali kegagalan berdasarkan strategi coba lagi Anda.