Amazon DynamoDB stream sebagai sumber untuk 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 DynamoDB stream sebagai sumber untuk Pipes EventBridge

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 Amazon Resource Name ARN () baru, dan tidak lagi terkait dengan pipa Anda.

Jika Anda mengaktifkan kembali aliran DynamoDB, Anda kemudian perlu membuat pipa baru menggunakan aliran baru. ARN

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, lihatPemfilteran acara di Amazon Pipes EventBridge .

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

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.

Anda juga dapat meningkatkan konkurensi dengan memproses beberapa batch dari setiap shard 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

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 sebagaiTRIM_HORIZON.

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.