Pola Peristiwa di CloudWatch Events - Amazon CloudWatch Peristiwa

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

Pola Peristiwa di CloudWatch Events

catatan

Amazon EventBridge adalah cara pilihan untuk mengelola peristiwa Anda. CloudWatch Events dan EventBridge adalah layanan dan API dasar yang sama, tetapi EventBridge menyediakan lebih banyak fitur. Perubahan yang Anda buat di CloudWatch atau EventBridge akan muncul di setiap konsol. Untuk informasi selengkapnya, lihat Amazon EventBridge.

Peristiwa di Amazon CloudWatch Events dilambangkan sebagai objek JSON. Untuk informasi lebih lanjut tentang JSON, lihat RFC 7159. Berikut ini adalah contoh peristiwa:

{ "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "EC2 Instance State-change Notification", "source": "aws.ec2", "account": "111122223333", "time": "2017-12-22T18:43:48Z", "region": "us-west-1", "resources": [ "arn:aws:ec2:us-west-1:123456789012:instance/ i-1234567890abcdef0" ], "detail": { "instance-id": " i-1234567890abcdef0", "state": "terminated" } }

Penting untuk mengingat detail berikut tentang suatu peristiwa:

  • Semua detail tersebut memiliki field tingkat atas yang sama - yang muncul dalam contoh di atas - yang tidak pernah absen.

  • Konten dari bidang tingkat atas detail berbeda bergantung pada layanan yang menghasilkan peristiwa dan apa peristiwanya. Kombinasi dari sumber dan bidang jenis detail berfungsi untuk mengidentifikasi bidang dan nilai yang ditemukan dalam bidang detail. Untuk contoh peristiwa yang dihasilkan oleh layanan AWS, lihat Jenis Peristiwa untuk CloudWatch Events.

Setiap field peristiwa dijelaskan di bawah ini.

versi

Secara default, ini diatur ke 0 (nol) di semua peristiwa.

id

Sebuah nilai unik dihasilkan untuk setiap peristiwa. Hal ini dapat membantu dalam melacak peristiwa saat bergerak dari aturan ke target, dan diproses.

jenis-detail

Mengidentifikasi, dalam kombinasi dengan bidang sumber, bidang dan nilai yang muncul di bidang detail.

Semua peristiwa yang disampaikan oleh CloudTrail memiliki AWS API Call via CloudTrail sebagai nilai untuk detail-type. Untuk informasi selengkapnya, lihat Peristiwa yang Disampaikan ViaCloudTrail.

sumber

Mengidentifikasi layanan yang menghasilkan peristiwa. Semua peristiwa yang bersumber dari dalam AWS dimulai dengan ”AWS.” Peristiwa yang dihasilkan pelanggan dapat memiliki nilai berapa pun di sini, selama tidak dimulai dengan ”AWS.” Kami merekomendasikan penggunaan string nama domain terbalik gaya nama paket Java.

Untuk menemukan nilai yang benar untuk source untuk layanan AWS, lihat tabel di Namespaces Layanan AWS. Sebagai contoh, nilai source untuk Amazon CloudFront adalah aws.cloudfront.

akun

Angka 12 digit yang mengidentifikasi akun AWS.

waktu

Peristiwa timestamp, yang dapat ditentukan oleh layanan yang berasal dari peristiwa. Jika peristiwa mencakup interval waktu, layanan dapat melaporkan waktu mulai, sehingga nilai ini mungkin sebelum waktu peristiwa diterima.

wilayah

Mengidentifikasi wilayah AWS asal peristiwa.

sumber daya

Array JSON berisi ARN yang mengidentifikasi sumber daya yang terlibat dalam peristiwa tersebut. Pencantuman ARN ini tergantung pada kebijakan layanan. Sebagai contoh, perubahan keadaan instans Amazon EC2 termasuk ARN instans Amazon EC2, peristiwa Auto Scaling termasuk ARN untuk kedua instans dan kelompok Auto Scaling, tapi panggilan API dengan AWS CloudTrail tidak mencakup ARN sumber daya.

detail

Sebuah objek JSON, yang berisi kebijakan layanan yang berasal dari peristiwa tersebut. Konten detail dalam contoh di atas sangat sederhana, hanya dua field. AWS Peristiwa panggilan API memiliki objek detail dengan sekitar 50 field yang disarangkan sedalam beberapa tingkat.

Pola Peristiwa

Aturan menggunakan pola kejadian untuk memilih kejadian dan merutekannya ke target. Pola peristiwa cocok atau tidak cocok dengan peristiwa. Pola peristiwa dilambangkan sebagai objek JSON dengan struktur yang mirip dengan struktur peristiwa, misalnya:

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ], "detail": { "state": [ "running" ] } }

Penting untuk mengingat detail berikut tentang pencocokan pola peristiwa:

  • Agar pola cocok dengan peristiwa, peristiwa harus berisi semua nama field yang tercantum dalam pola peristiwa. Nama field juga harus muncul dalam peristiwa dengan struktur persarangan yang sama.

  • Field lain dari peristiwa yang tidak disebutkan dalam pola diabaikan; Secara efektif, terdapat wildcard “*”: “*”: “*”: “*” untuk field yang tidak disebutkan.

  • Pencocokan bersifat pasti (karakter per karakter) yang tepat tanpa case-folding atau normalisasi string lainnya.

  • Nilai-nilai yang cocok mengikuti aturan JSON: String tertutup dalam tanda kutip, angka, dan kata kunci yang belum dikutiptrue,false, dannull.

  • Angka yang dicocokkan berada di tingkat representasi string. Sebagai contoh, 300, 300,0, dan 3,0e2 tidak dianggap sama.

Ketika Anda menulis pola peristiwa untuk mencocokkan peristiwa, Anda dapat menggunakan API TestEventPattern atau perintah CLI test-event-pattern untuk memastikan bahwa pola Anda cocok dengan peristiwa yang diinginkan. Untuk informasi selengkapnya, lihat TestEventPattern atau uji-pola-peristiwa.

Pola peristiwa berikut akan cocok dengan peristiwa di bagian atas halaman ini. Pola pertama cocok karena salah satu nilai instans yang ditentukan dalam pola cocok dengan peristiwa (dan pola tidak menentukan field tambahan yang tidak terkandung dalam peristiwa). Pola kedua cocok karena keadaan yang “dihentikan” terkandung dalam peristiwa tersebut.

{ "resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-12345678", "arn:aws:ec2:us-east-1:123456789012:instance/i-abcdefgh" ] }
{ "detail": { "state": [ "terminated" ] } }

Pola peristiwa berikut akan cocok dengan peristiwa di bagian atas halaman ini. Pola pertama tidak cocok karena pola menentukan nilai “tertunda” untuk keadaan, dan nilai ini tidak muncul dalam peristiwa. Pola kedua tidak cocok karena nilai sumber daya yang ditentukan dalam pola tidak muncul dalam peristiwa.

{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ], "detail": { "state": [ "pending" ] } }
{ "source": [ "aws.ec2" ], "detail-type": [ "EC2 Instance State-change Notification" ], "resources": [ "arn:aws:ec2:us-east-1::image/ami-12345678" ] }

Pencocokan Nilai Null dan String Kosong dalam Pola Peristiwa

Anda dapat membuat pola peristiwa yang cocok dengan field peristiwa yang memiliki nilai null atau string kosong. Untuk melihat bagaimana proses ini bekerja, pertimbangkan contoh peristiwa berikut:

{ "version": "0", "id": "3e3c153a-8339-4e30-8c35-687ebef853fe", "detail-type": "EC2 Instance Launch Successful", "source": "aws.autoscaling", "account": "123456789012", "time": "2015-11-11T21:31:47Z", "region": "us-east-1", "resources": [ ], "detail": { "eventVersion": "", "responseElements": null } }

Untuk mencocokkan peristiwa di mana nilai eventVersion adalah string kosong, gunakan pola peristiwa berikut ini, yang cocok dengan contoh peristiwa.

{ "detail": { "eventVersion": [""] } }

Untuk mencocokkan peristiwa di mana nilai responseElements adalah null, gunakan pola peristiwa berikut ini, yang cocok dengan contoh peristiwa.

{ "detail": { "responseElements": [null] } }

Nilai null dan string kosong tidak dapat dipertukarkan dalam pencocokan pola. Sebuah pola yang ditulis untuk mendeteksi string kosong tidak akan menangkap nilai-nilai null.

Array dalam Pola CloudWatch Events

Nilai setiap field dalam pola adalah array yang berisi satu atau lebih nilai, dan pola cocok jika salah satu nilai dalam array cocok dengan nilai dalam peristiwa. Jika nilai dalam peristiwa adalah array, pola peristiwa cocok jika persimpangan array pola peristiwa dan array peristiwa tidak kosong.

Misalnya, contoh pola peristiwa termasuk teks berikut:

"resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f", "arn:aws:ec2:us-east-1:111122223333:instance/i-b188560f", "arn:aws:ec2:us-east-1:444455556666:instance/i-b188560f", ]

Contoh pola peristiwa cocok dengan peristiwa yang mencakup teks berikut ini karena item pertama dalam array pola peristiwa cocok dengan item kedua dalam array peristiwa.

"resources": [ "arn:aws:autoscaling:us-east-1:123456789012:autoScalingGroup:eb56d16b-bbf0-401d-b893-d5978ed4a025:autoScalingGroupName/ASGTerminate", "arn:aws:ec2:us-east-1:123456789012:instance/i-b188560f" ]