Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Berlangganan acara di Bus Acara Kustom
Pelanggan adalah salah satu sumber daya yang mengatakan acara mana yang Anda inginkan dan ke mana harus mengirimnya. Anda membuatnya denganCreateSubscriber, menamai bus, filter, dan satu target. Ini mengawasi bus itu, menyimpan peristiwa yang sesuai dengan filternya, secara opsional mengubah masing-masing, dan mengirimkannya ke tepat satu target. Untuk menggembirakan acara ke beberapa target, buat satu pelanggan untuk setiap target di bus yang sama.
EventBridge menerapkan satu pelanggan membuat atau menghapus pada satu waktu di bus tertentu, akun mana pun yang dipanggil. Bus kedua CreateSubscriber atau DeleteSubscriber di bus yang sama saat sedang berjalan gagalConcurrentModificationException; coba lagi. Kuota Bus Acara KustomOleh karena itu, tarif buat dan hapus berlaku per bus.
Memfilter peristiwa mana yang mencapai target
FilterConfigurationmemegang daftarFilters. Setiap filter memiliki Pattern sintaks pola dalam EventBridge peristiwa, dan satuScope. Anda dapat memiliki paling banyak satu filter per lingkup, dan EventBridge memberikan acara hanya jika cocok dengan setiap filter dalam daftar. Pelanggan tanpa FilterConfiguration menerima setiap acara di bus.
-
DATA: cocok dengan muatan. Tulis pola terhadap bentuk yang dijelaskan diStruktur acara: data, metadata, dan metadata sistem. -
METADATA: cocok dengan pasangan kunci-nilai yang ditetapkan produsenPutRawEvents, hanya kecocokan tepat. -
SYSTEM_METADATA: cocok dengan kum EventBridge pulan bidang, sepertiaws:SourceatauEventGroupId.
Untuk sintaks pola, aturan cakupan, dan contoh, lihatMemfilter acara untuk pelanggan.
Mengubah muatan
Transformer.TypeMemilih apa yang diterima target. Target universal tidak menggunakannya; lihatTarget universal untuk Bus Acara Kustom.
-
RAW, default. Muatan saja. -
WITH_METADATA. Acara lengkap:Data,Metadata, danSystemMetadata. -
JSONATA. Hasil ekspresi JSONata masukJsonataConfiguration.Expression, dibungkus dalam pembatas{% %}, dengan acara tersedia sebagai.$events
EventBridge memeriksa sintaks ekspresi saat Anda membuat pelanggan dan mengevaluasinya pada waktu pengiriman. Ekspresi yang melempar, atau yang tidak menghasilkan nilai, gagal dalam pengiriman peristiwa itu. Uji ekspresi terhadap peristiwa nyata sebelum Anda bergantung padanya. Untuk apa $events yang berlaku, fungsi tambahan, dan batasnya, lihatMengubah acara dengan JSONata.
Menyampaikan ke satu target
InvokeConfigurationmembawaTargetArn, RoleArn yang meng EventBridge asumsikan untuk memanggil target, dan paling banyak satu blok parameter yang cocok dengan tipe target. Sebagian besar nilai parameter menerima ekspresi JSONata, sehingga nilai dapat berasal dari peristiwa. Tabel berikut mencantumkan tipe target yang dipesan lebih dahulu dan blok parameternya; masing-masing memiliki halaman sendiri di Target untuk pelanggan Bus Acara Kustom bawahnya.
| Target | Blok parameter |
|---|---|
| Antrean Amazon SQS | SqsParameters |
| Fungsi lambda | LambdaParameters |
| Aliran Kinesis | KinesisParameters |
| Fungsi langkah mesin status | StepFunctionsParameters |
| Topik Amazon SNS | SnsParameters |
| Titik akhir HTTP atau tujuan API | HttpParameters |
| Aliran Firehose | FirehoseParameters |
Bus Acara Kustom atau Bus Acara Kustom - Klasik juga dapat menjadi target: atur bus ARN sebagaiTargetArn. Untuk target FIFO seperti antrian Amazon SQS FIFO, tetapkan pengidentifikasi deduplikasi target sendiri di blok parameter, misalnyaSqsParameters.MessageDeduplicationId, ke nilai per pesan yang diturunkan dari peristiwa dengan ekspresi JSONata. Konstanta membuat target membuang setiap pesan setelah yang pertama.
Target universal memanggil tindakan AWS API secara langsung, tanpa fungsi di antaranya. ARN-nya memiliki bentukarn:aws:events:::aws-sdk:, misalnyaservice:apiActionarn:aws:events:::aws-sdk:dynamodb:putItem, dan menyimpan permintaan sebagai JSON atau sebagai ekspresi JSONata yang memproduksinya. UniversalTargetParameters.Input Untuk aturan penamaan, batching, dan perilaku kegagalan, lihatTarget universal untuk Bus Acara Kustom.
Saat Anda membuat pelanggan, EventBridge menyelesaikan jenis target dari ARN dan memeriksa tiga hal: bahwa blok parameter cocok dengan tipe target, bahwa ARN milik akun Anda, dan bahwa setiap ekspresi diurai. Apakah target ada, apakah peran dapat mencapainya, dan apakah API target menerima nilai diperiksa saat pengiriman, jadi konfirmasikan pengiriman pertama di target.
Percobaan ulang dan antrian surat mati
RetryPolicymenetapkan berapa lama EventBridge percobaan ulang pengiriman yang gagal, secara default 5 upaya dalam 300 detik, dan memberi OnFailureConfiguration.Arn nama antrian Amazon SQS yang menerima catatan untuk setiap peristiwa yang menghabiskan percobaan ulang. Atur keduanya saat Anda membuat pelanggan. Untuk batasan, format rekaman, dan cara mengulang, lihatKebijakan coba ulang dan antrian surat mati.
Peran pengiriman
Peran RoleArn harus milik akun Anda dan mempercayai prinsi events.amazonaws.com pal layanan. Penelep iam:PassRole on Anda membutuhkan peran untuk membuat pelanggan, atau EventBridge menolak permintaan sebelum memeriksa ARN target. Kebijakan izin peran memerlukan dua hibah.
-
Tindakan yang dibutuhkan target, misalnya
sqs:SendMessagepada antrian,lambda:InvokeFunctionpada fungsi,sns:Publishpada topik, ataukinesis:PutRecordspada aliran. -
sqs:SendMessagedi antrian huruf mati di.OnFailureConfiguration.ArnTanpa itu, pengiriman yang gagal tidak memiliki tempat untuk merekam dirinya sendiri, dan peristiwa itu hilang tanpa sinyal.
Kebijakan kepercayaan berikut memungkinkan EventBridge untuk mengambil peran.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Kebijakan izin berikut mengirimkan ke antrian Amazon SQS dan huruf mati ke antrian kedua.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeTheTarget", "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-1:111122223333:large-orders" }, { "Sid": "WriteToTheDeadLetterQueue", "Effect": "Allow", "Action": "sqs:SendMessage", "Resource": "arn:aws:sqs:us-east-1:111122223333:large-orders-dlq" } ] }
Contoh: mengirimkan pesanan besar ke antrian
Perintah berikut membuat pelanggan yang mengirimkan pesanan lebih dari 500 ke antrian Amazon SQS, untuk acara yang diterbitkan denganPutEvents, dan mengirimkan kegagalan ke antrian surat mati.
aws eventsv2 create-subscriber \ --name large-orders \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --filter-configuration '{ "Filters": [ { "Scope": "DATA", "Pattern": "{\"detail\":{\"total\":[{\"numeric\":[\">\",500]}]}}" } ] }' \ --invoke-configuration '{ "TargetArn": "arn:aws:sqs:us-east-1:111122223333:large-orders", "RoleArn": "arn:aws:iam::111122223333:role/EventBusDeliveryRole" }' \ --on-failure-configuration '{ "Arn": "arn:aws:sqs:us-east-1:111122223333:large-orders-dlq" }'
Pemecahan masalah: Anda menerbitkan dan tidak ada yang sampai pada target
Tanggapan publikasi hanya mengatakan bahwa bus menerima dan menyimpan acara; itu tidak pernah mengkonfirmasi pengiriman. Kerjakan pemeriksaan berikut secara berurutan.
- Gejala
Panggilan publikasi mengembalikan HTTP 200 tanpa entri yang gagal, dan target tidak menerima apa pun setelah beberapa menit.
- Penyebab
Salah satu dari lima hal, dalam urutan frekuensi: pengiriman masih dicoba ulang; pelanggan dicabut
STOPPEDatau dicabut; pelangganStartingPositionadalahLATESTdan acara dipublikasikan sebelum pelanggan ada; filter ditulis untuk API publikasi lainnya dan tidak cocok dengan apa pun; atau peran pengiriman tidak dapat mencapai target atau antrian surat mati.TargetInvocationsmemberitahu Anda bagian mana dari masalah yang Anda miliki. Poin data aktifTargetInvocationstanpa menyalaEventsDeliveredberarti pengiriman dicoba dan gagal. Tidak ada titik data aktifTargetInvocationssaat memFilterEvaluatedilikinya berarti tidak ada pengiriman yang dicoba; periksa apakah pelanggan adaRUNNING, dan periksa.EventTransformationFailures- Solusi
-
Baca pelanggan.
StateharusRUNNINGdanRevokedharus absen; itu hanya muncul ketika benar. CatatanStartingPositiondan filter.aws eventsv2 describe-subscriber \ --subscriber-arn arn:aws:events:us-east-1:111122223333:subscriber/large-orders/EXAMPLE1234567890abcdefBaca metrik pelanggan di
AWS/EventsV2.FilterEvaluatedpada nol berarti tidak ada peristiwa yang mencapai pelanggan ini: produsen menerbitkan ke bus lain, atau sebelum pelanggan ada bersamaLATEST.FilterEvaluateddi atas nol denganFilterMatchednol berarti filter tidak cocok; lihatStruktur acara: data, metadata, dan metadata sistem. KetikaFilterMatchedmemiliki titik data danEventsDeliveredtidak, pengiriman gagal, dan metrik mana yang mencatat hasilnya tergantung pada pelanggan:EventsDroppedketika tidak ada antrian huruf mati yang dikonfigurasi,OnFailureDestinationDeliveredketika acara mencapai antrian, danOnFailureDestinationFailedkapan tidak.Nyalakan log dan reproduksi. Set
LogConfiguration.LevelelIncludePayloadkeINFOdan keFULL, kaitkan pengiriman log, publikasikan lagi, dan bacaEVENT_DELIVERY_ATTEMPTcatatan. Masing-masing membawa kode kesalahan dan pesan target sendiri, dandetails.target_input, yang merupakan apa yang EventBridge dikirim daripada apa yang ingin Anda kirim. Lihat Pengamatan untuk Bus Peristiwa Kustom: metrik, log, dan CloudTrail.Jika filter adalah tersangka, tambahkan pelanggan diagnostik di bus yang sama tanpa filter
Transformer.TypeWITH_METADATA, dan antrian yang Anda miliki sebagai target. Ini memberikan setiap acara persis seperti yang EventBridge dilihatnya, sebagaiData,Metadata, danSystemMetadata. Kemudian sederhanakan filter Anda satu kondisi pada satu waktu; kondisi terakhir yang Anda hapus adalah penyebabnya.
- Verifikasi
Publikasikan satu acara yang harus cocok dan yang tidak seharusnya. Yang pertama tiba di target dan
EventsDeliveredbertambah satu; yang kedua tidak tiba dan berFilterEvaluatedtambah sementaraFilterMatchedtidak.
catatan
Metrik pelanggan tersedia untuk pemilik bus dan pemilik pelanggan; lognya hanya dikirimkan ke pemilik pelanggan.