Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengintegrasikan DynamoDB dengan Amazon EventBridge
Amazon DynamoDB menawarkan DynamoDB Streams untuk mengubah pengambilan data, memungkinkan pengambilan perubahan tingkat item dalam tabel DynamoDB. DynamoDB Streams dapat memanggil fungsi Lambda untuk memproses perubahan tersebut, memungkinkan integrasi berbasis peristiwa dengan layanan dan aplikasi lain. DynamoDB Streams juga mendukung penyaringan, yang memungkinkan pemrosesan peristiwa yang efisien dan ditargetkan.
DynamoDB Streams mendukung hingga dua konsumen simultan per shard dan mendukung penyaringan melalui penyaringan acara Lambda sehingga hanya item yang sesuai dengan kriteria tertentu yang diproses. Beberapa pelanggan mungkin memiliki persyaratan untuk mendukung lebih dari dua konsumen. Orang lain mungkin perlu memperkaya peristiwa perubahan sebelum diproses, atau menggunakan pemfilteran dan perutean yang lebih canggih.
Mengintegrasikan DynamoDB EventBridge dengan dapat mendukung persyaratan tersebut.
Amazon EventBridge adalah layanan tanpa server yang menggunakan peristiwa untuk menghubungkan komponen aplikasi bersama-sama, sehingga memudahkan Anda untuk membangun aplikasi berbasis peristiwa yang dapat diskalakan. EventBridge menawarkan integrasi asli dengan Amazon DynamoDB EventBridge melalui Pipes, memungkinkan aliran data yang mulus dari DynamoDB ke bus. EventBridge Bus itu kemudian dapat melakukan fan-out ke beberapa aplikasi dan layanan melalui seperangkat aturan dan target.
Cara kerjanya
Integrasi antara DynamoDB EventBridge dan pipa menggunakan DynamoDB Streams untuk menangkap urutan perubahan tingkat item yang diatur waktu dalam tabel DynamoDB. Setiap catatan yang ditangkap dengan cara ini berisi data yang dimodifikasi dalam tabel.
EventBridge Pipa mengkonsumsi peristiwa dari DynamoDB Streams dan merutekan mereka ke target seperti bus (bus EventBridge acara adalah router yang menerima acara dan mengirimkannya ke tujuan, juga disebut target). Pengiriman didasarkan pada aturan mana yang cocok dengan isi acara. Secara opsional, pipa juga mencakup kemampuan untuk memfilter peristiwa tertentu dan melakukan pengayaan pada data peristiwa sebelum mengirimkannya ke target.
Sementara EventBridge mendukung beberapa jenis target, pilihan umum saat menerapkan desain fan-out adalah dengan menggunakan fungsi Lambda sebagai target. Contoh berikut menunjukkan integrasi dengan target fungsi Lambda.
Membuat integrasi melalui konsol
Ikuti langkah-langkah di bawah ini untuk membuat integrasi melalui AWS Management Console.
-
Aktifkan DynamoDB Streams pada tabel sumber dengan mengikuti langkah-langkah di Mengaktifkan aliran bagian panduan pengembang DynamoDB. Jika DynamoDB Streams sudah diaktifkan pada tabel sumber, verifikasi bahwa saat ini ada kurang dari dua konsumen. Konsumen dapat berupa fungsi Lambda, DynamoDB Global Tables, Amazon DynamoDB nol integrasi ETL dengan Amazon OpenSearch Service, atau aplikasi yang membaca langsung dari aliran seperti melalui adaptor DynamoDB Streams Kinesis.
-
Buat bus EventBridge acara dengan mengikuti langkah-langkah di bagian Membuat bus EventBridge acara Amazon di panduan EventBridge pengguna.
-
Saat membuat bus acara, aktifkan penemuan Skema.
-
-
Buat EventBridge pipa dengan mengikuti langkah-langkah di bagian Membuat EventBridge pipa Amazon dari panduan EventBridge pengguna.
-
Saat mengonfigurasi sumber, di bidang Sumber pilih DynamoDB dan di bidang DynamoDB Streams pilih nama aliran tabel sumber.
-
Saat mengonfigurasi target, di bidang Layanan target pilih bus EventBridge acara dan di bidang Bus acara sebagai target pilih bus acara yang dibuat pada langkah 2.
-
-
Tulis item contoh ke tabel DynamoDB sumber untuk memicu peristiwa. Ini akan memungkinkan EventBridge untuk menyimpulkan skema dari item contoh. Skema ini dapat digunakan untuk membuat aturan untuk peristiwa routing. Misalnya, jika Anda menerapkan pola desain yang melibatkan atribut overloading, Anda mungkin ingin memicu aturan yang berbeda tergantung pada nilai kunci pengurutan Anda. Detail tentang cara menulis item ke DynamoDB dapat ditemukan di bagian Bekerja dengan item dan atribut dari panduan pengembang DynamoDB.
-
Buat contoh fungsi Lambda Python yang akan digunakan sebagai target dengan mengikuti langkah-langkah dalam Membangun fungsi Lambda dengan bagian Python dari panduan pengembang Lambda. Saat membuat fungsi Anda, Anda dapat menggunakan kode contoh di bawah ini untuk menunjukkan integrasi. Ketika dipanggil, itu akan mencetak
NewImage
danOldImage
diterima dengan acara yang dapat dilihat di CloudWatch Log.import json def lambda_handler(event, context): dynamodb = event.get('detail', {}).get('dynamodb', {}) new_image = dynamodb.get('NewImage') old_image = dynamodb.get('OldImage') if new_image: print("NewImage:", json.dumps(new_image, indent=2)) if old_image: print("OldImage:", json.dumps(old_image, indent=2)) return {'statusCode': 200, 'body': json.dumps(event)}
-
Buat EventBridge aturan yang akan merutekan peristiwa ke fungsi Lambda baru Anda dengan mengikuti langkah-langkah di bagian Buat aturan yang bereaksi terhadap panduan pengguna peristiwa EventBridge .
-
Saat menentukan detail aturan, pilih nama bus acara yang Anda buat di langkah 2 sebagai bus Acara.
-
Saat membuat pola acara, ikuti panduan untuk skema yang ada. Di sini, Anda dapat memilih registri skema yang ditemukan dan skema yang ditemukan untuk acara Anda. Ini memungkinkan Anda mengonfigurasi pola peristiwa khusus untuk kasus penggunaan yang hanya merutekan pesan yang cocok dengan atribut tertentu. Misalnya, jika Anda ingin mencocokkan hanya pada item DynamoDB tempat SK
“user#”
dimulai, Anda akan menggunakan konfigurasi seperti ini. -
Klik Buat pola acara JSON setelah Anda selesai mendesain pola terhadap skema Anda. Jika Anda ingin mencocokkan semua peristiwa yang muncul di DynamoDB Streams, gunakan yang berikut ini untuk pola acara. JSON
{ "source": ["aws.dynamodb"] }
-
Saat memilih target, ikuti panduan untuk AWS layanan. Di bidang Pilih target, pilih “Fungsi Lambda”. Di bidang Fungsi, pilih fungsi Lambda yang Anda buat di langkah 5.
-
-
Anda sekarang dapat menghentikan penemuan skema di bus acara Anda dengan mengikuti langkah-langkah di bagian Memulai atau menghentikan penemuan skema di bus acara pada panduan EventBridge pengguna.
-
Tulis item contoh kedua ke tabel DynamoDB sumber untuk memicu peristiwa. Validasi bahwa acara berhasil diproses di setiap langkah.
-
Lihat CloudWatch metrik PutEventsApproximateSuccessCountuntuk bus acara Anda dengan mengikuti EventBridge bagian Pemantauan Amazon pada panduan EventBridge pengguna.
-
Lihat log fungsi untuk fungsi Lambda Anda dengan mengikuti bagian Pemantauan dan pemecahan masalah fungsi Lambda dari panduan pengembang Lambda. Jika fungsi Lambda Anda menggunakan kode contoh yang disediakan, Anda akan melihat
NewImage
danOldImage
dari DynamoDB Streams dicetak dalam grup log Log. CloudWatch -
Lihat metrik jumlah kesalahan dan tingkat keberhasilan (%) untuk fungsi Lambda Anda dengan mengikuti bagian Pemantauan dan pemecahan masalah fungsi Lambda dari panduan pengembang Lambda.
-
Langkah selanjutnya
Contoh ini menyediakan integrasi dasar dengan fungsi Lambda tunggal sebagai target. Untuk pemahaman yang lebih baik tentang konfigurasi yang lebih kompleks, seperti membuat beberapa aturan, membuat beberapa target, mengintegrasikan dengan layanan lain, dan memperkaya peristiwa, lihat panduan EventBridge pengguna lengkap: Memulai. EventBridge
catatan
Waspadai EventBridge kuota apa pun yang mungkin relevan dengan aplikasi Anda. Sementara skala kapasitas DynamoDB Streams dengan tabel Anda, kuota terpisah. EventBridge Kuota umum yang harus diperhatikan dalam aplikasi besar adalah batas throttle Invocations dalam transaksi per detik dan PutEvents batas throttle dalam transaksi per detik. Kuota ini menentukan jumlah pemanggilan yang dapat dikirim ke target dan jumlah acara yang dapat dimasukkan ke dalam bus per detik.