Praktik terbaik saat mendefinisikan pola EventBridge acara Amazon - Amazon EventBridge

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

Praktik terbaik saat mendefinisikan pola EventBridge acara Amazon

Di bawah ini adalah beberapa praktik terbaik yang perlu dipertimbangkan saat menentukan pola acara dalam aturan bus acara Anda.

Hindari menulis loop tak terbatas

Di EventBridge, dimungkinkan untuk membuat aturan yang mengarah ke loop tak terbatas, di mana aturan ditembakkan berulang kali. Sebagai contoh, aturan mungkin mendeteksi bahwa ACL telah berubah di bucket S3, lalu memicu perangkat lunak untuk mengubahnya ke keadaan yang diinginkan. Jika aturan tidak ditulis dengan hati-hati, perubahan berikutnya pada ACL akan mengaktifkan kembali aturan, yang membuat loop tak terbatas.

Untuk mencegah masalah ini, tulis pola acara agar aturan Anda setepat mungkin, sehingga hanya cocok dengan peristiwa yang sebenarnya ingin Anda kirim ke target. Dalam contoh di atas, Anda akan membuat pola acara untuk mencocokkan peristiwa sehingga tindakan yang dipicu tidak mengaktifkan kembali aturan yang sama. Misalnya, buat pola acara dalam aturan Anda yang akan cocok dengan peristiwa hanya jika ACL ditemukan dalam keadaan buruk, bukan setelah perubahan apa pun. Untuk informasi selengkapnya, lihat Buat pola acara setepat mungkin dan Cakupan pola acara Anda untuk memperhitungkan pembaruan sumber acara.

Loop tak terbatas dapat dengan cepat mengakibatkan biaya yang lebih tinggi dari yang diperkirakan. Ini juga dapat menyebabkan pelambatan dan pengiriman acara tertunda. Anda dapat memantau batas atas tingkat doa Anda untuk diperingatkan tentang lonjakan volume yang tidak terduga.

Gunakan penganggaran untuk mengingatkan Anda ketika biaya melebihi batas yang Anda tentukan. Untuk informasi lebih lanjut, lihat Mengelola Biaya Anda dengan Anggaran.

Buat pola acara setepat mungkin

Semakin tepat pola acara Anda, semakin besar kemungkinannya hanya cocok dengan peristiwa yang benar-benar Anda inginkan, dan menghindari kecocokan tak terduga saat peristiwa baru ditambahkan ke sumber acara, atau acara yang ada diperbarui untuk menyertakan properti baru.

Pola acara dapat mencakup filter yang cocok pada:

  • Metadata acara tentang acara tersebut, sepertisource,. detail-type account, atauregion.

  • Data peristiwa, ini adalah, bidang di dalam detail objek.

  • Konten acara, atau nilai aktual dari bidang di dalam detail objek.

Sebagian besar pola sederhana, seperti hanya menentukan source dan detail-type filter. Namun, EventBridge pola mencakup fleksibilitas untuk memfilter pada kunci atau nilai acara apa pun. Selain itu, Anda dapat menerapkan filter konten seperti prefix dan suffix filter untuk meningkatkan ketepatan pola Anda. Untuk informasi selengkapnya, lihat Pemfilteran konten dalam pola EventBridge acara Amazon.

Tentukan sumber acara dan jenis detail sebagai filter

Anda dapat mengurangi menghasilkan loop tak terbatas dan mencocokkan peristiwa yang tidak diinginkan dengan membuat pola acara Anda lebih tepat menggunakan bidang source dan detail-type metadata.

Saat Anda perlu mencocokkan nilai tertentu dalam dua bidang atau lebih, gunakan operator $or perbandingan, daripada mencantumkan semua nilai yang mungkin dalam satu larik nilai.

Untuk acara yang disampaikan melalui AWS CloudTrail, kami sarankan Anda menggunakan eventName bidang sebagai filter.

Contoh pola peristiwa berikut cocok CreateQueue atau SetQueueAttributes dari layanan Amazon Simple Queue Service, atau CreateKey atau DisableKeyRotation peristiwa dari AWS Key Management Service layanan.

{ "detail-type": ["AWS API Call via CloudTrail"], "$or": [{ "source": [ "aws.sqs" ], "detail": { "eventName": [ "CreateQueue", "SetQueueAttributes" ] } }, { "source": [ "aws.kms" ], "detail": { "eventName": [ "CreateKey", "DisableKeyRotation" ] } } ] }

Tentukan akun dan wilayah sebagai filter

accountMenyertakan dan region bidang dalam pola acara Anda membantu membatasi pencocokan acara lintas akun atau lintas wilayah.

Tentukan filter konten

Pemfilteran berbasis konten dapat membantu meningkatkan presisi pola acara, sambil tetap menjaga panjang pola acara seminimal mungkin. Misalnya, pencocokan berdasarkan rentang numerik dapat membantu alih-alih mencantumkan semua nilai numerik yang mungkin.

Untuk informasi selengkapnya, lihat Pemfilteran konten dalam pola EventBridge acara Amazon.

Cakupan pola acara Anda untuk memperhitungkan pembaruan sumber acara

Saat membuat pola acara, Anda harus mempertimbangkan bahwa skema acara dan domain acara dapat berkembang dan berkembang seiring waktu. Di sini sekali lagi, membuat pola acara Anda seakurat mungkin membantu Anda membatasi kecocokan tak terduga jika sumber acara berubah atau berkembang.

Misalnya, misalkan Anda cocok dengan peristiwa dari layanan mikro baru yang menerbitkan peristiwa terkait pembayaran. Awalnya, layanan menggunakan domainacme.payments, dan menerbitkan satu acara,Payment accepted:

{ "detail-type": "Payment accepted", "source": "acme.payments", "detail": { "type": "credit", "amount": "100", "date": "2023-06-10", "currency": "USD" } } }

Pada titik ini, Anda dapat membuat pola acara sederhana yang cocok dengan peristiwa yang diterima Pembayaran:

{ “source” : “acme.payments” }

Namun, misalkan layanan kemudian memperkenalkan acara baru untuk pembayaran yang ditolak:

{ "detail-type": "Payment rejected", "source": "acme.payments", "detail": { } }

Dalam hal ini, pola acara sederhana yang Anda buat sekarang akan cocok dengan keduanya Payment accepted dan Payment rejected peristiwa. EventBridge merutekan kedua jenis peristiwa ke target yang ditentukan untuk diproses, mungkin memperkenalkan kegagalan pemrosesan dan biaya pemrosesan tambahan.

Untuk membuat cakupan pola Payment accepted acara Anda hanya ke peristiwa, Anda ingin menentukan keduanya source dandetail-type, minimal:

{ "detail-type": "Payment accepted", "source": "acme.payments" } }

Anda juga dapat menentukan akun dan Wilayah dalam pola acara Anda, untuk membatasi lebih lanjut kapan peristiwa lintas akun atau lintas wilayah cocok dengan aturan ini.

{ "account": "012345678910", "source": "acme.payments", "region": "AWS-Region", "detail-type": "Payment accepted" }

Validasi pola acara

Untuk memastikan aturan sesuai dengan acara yang diinginkan, kami sangat menyarankan Anda memvalidasi pola acara Anda. Anda dapat memvalidasi pola acara menggunakan EventBridge konsol atau API: