View a markdown version of this page

Menerbitkan acara ke Bus Acara Kustom - Amazon EventBridge

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

Menerbitkan acara ke Bus Acara Kustom

Anda menerbitkan acara ke Bus Peristiwa Kustom dengan salah satu dari dua operasi API, PutEvents atauPutRawEvents. Operasi yang Anda pilih memperbaiki bentuk peristiwa yang dikirimkan, dan bentuk itu menentukan bagaimana Anda menulis setiap filter, transformator, dan parameter target untuk bus. Pilih sebelum Anda menulis pelanggan pertama Anda. Untuk dua bentuk, lihatStruktur acara: data, metadata, dan metadata sistem.

Kedua operasi menghasilkan satu jenis acara, dan EventBridge memperlakukannya secara identik setelah acara ada di bus. PutEventsadalah kemudahanPutRawEvents: EventBridge mengambil entriSource,, DetailTypeDetail, dan bidang lainnya, membuat amplop JSON darinya, dan menyimpan amplop itu sebagai muatan JSON dengan jenis application/eventbridge+json konten. Sejak saat itu, pemfilteran, transformasi, pemesanan, deduplikasi, retensi, dan pengiriman bekerja persis seperti yang mereka lakukan untuk acara JSON yang diterbitkan dengan. PutRawEvents Satu-satunya perbedaan yang dilihat pelanggan adalah di mana bidang Anda berada: di bagian atas Data untukPutRawEvents, dan di bawah di Data.detail dalam amplopPutEvents. Untuk muatan Avro, Protobuf, dan buram, lihat. Jenis konten yang didukung: JSON, Avro, Protobuf, dan byte mentah

PutEvents PutRawEvents
Bidang muatan Detail, string JSON Data, byte dalam format apa pun
Diperlukan dalam setiap entri Source, DetailType Data, SystemMetadata.ContentType
Jenis konten Setel oleh EventBridge ke application/eventbridge+json Tetapkan oleh Anda:application/json,application/avro,application/protobuf, atauapplication/octet-stream. Lihat Jenis konten yang didukung: JSON, Avro, Protobuf, dan byte mentah.
Metadata Anda sendiri Tidak tersedia Metadata, peta hingga 100 kunci
Input pemesanan dan deduplikasi SystemMetadata.EventGroupId, SystemMetadata.DeduplicationId Dua bidang yang sama
Gunakan kapan Acara Anda adalah JSON dan Anda menginginkan amplop yang sama dengan yang dihasilkan oleh Custom Event Bus - Classic Payload Anda adalah biner atau non-JSON, Anda memerlukan kunci metadata Anda sendiri, atau Anda ingin payload dikirimkan persis seperti yang dikirim

Publikasikan API

Kedua operasi mengambil batch 1 hingga 100 entri per permintaan dan mengembalikan satu hasil per entri, dalam urutan permintaan. EventBridge menerima atau menolak setiap entri dengan sendirinya: entr ErrorMessage i yang ditolak membawa ErrorCode dan sebagai pengganti aSuccessCode, dan entri lain dalam permintaan yang sama tidak terpengaruh. Batch entri yang dimiliki bersama, dan baca setiap hasil daripada status HTTP saja; lihatMembaca jawabannya. Kedua panggilan diambil dari satu anggaran tarif publikasi untuk akun Anda, dan bus itu sendiri memiliki kuota konsumsi per detik yang menghitung setiap penerbit dan sumber acara; lihatKuota Bus Acara Kustom.

Publikasikan acara JSON dengan PutEvents

aws eventsv2 put-events \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --entries '[ { "Source": "com.example.orders", "DetailType": "OrderPlaced", "Detail": "{\"orderId\":\"1001\",\"total\":42.5}" } ]'

Publikasikan acara mentah dengan PutRawEvents

Dataadalah bidang biner. Di dalamnya AWS CLI, berikan sebagai teks base64. Contoh berikut menerbitkan muatan JSON yang sama sebagai byte mentah dengan jenis kontenapplication/json, dan menambahkan kunci metadata.

aws eventsv2 put-raw-events \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --entries '[ { "Data": "eyJvcmRlcklkIjoiMTAwMSIsInRvdGFsIjo0Mi41fQ==", "Metadata": { "tenant": "acme" }, "SystemMetadata": { "ContentType": "application/json" } } ]'

Untuk menerbitkan Avro atau Protobuf, beri nama registri skema dalam permintaan dengan. --schema-registry-configuration RegistryUriadalah AWS Glue Schema Registry ARN atau URL HTTPS Confluent Cloud. Registri diberi nama per permintaan, bukan di bus. Acara dengan jenis konten tidak application/octet-stream perlu registri, karena EventBridge tidak memecahkan kode mereka.

Menerbitkan byte mentah

Untuk menerbitkan payload yang tidak EventBridge boleh mengurai atau memeriksa, panggil PutRawEvents dengan byte Base64-encoded masuk Data dan disetel keSystemMetadata.ContentType. application/octet-stream EventBridge menyimpan dan mengirimkan byte persis seperti yang dikirim, sehingga DATA filter tidak dapat mencocokkannya; rute dengan METADATA kunci yang Anda tetapkan pada entri atau denganSYSTEM_METADATA. Transformator pelanggan melihat muatan sebagai string Base64. $events.Data Untuk pilihan pengiriman dan alternatif deserialisasi untuk Avro dan Protobuf, lihatJenis konten yang didukung: JSON, Avro, Protobuf, dan byte mentah; untuk bagaimana muatan muncul pada transformator, lihat. Mengubah acara dengan JSONata

Membaca jawabannya

Kedua operasi mengembalikan satu hasil untuk setiap entri, dalam urutan yang sama dengan permintaan. Setiap hasil membawa a SuccessCode atau ErrorCode danErrorMessage. Periksa setiap entri, karena permintaan dapat berhasil sementara entri individu gagal.

SuccessCodeadalah PUBLISHED atauDEDUPLICATED. DEDUPLICATEDberarti bahwa EventBridge mengenali entri sebagai duplikat dari peristiwa yang sudah diterima dan tidak menyimpan salinan kedua. Ini sukses, bukan kesalahan. Untuk informasi selengkapnya, lihat Memesan dan mendeduplikasi peristiwa pada Bus Acara Kustom.

Laporan tanggapan publikasi yang EventBridge menerima acara tersebut. Itu tidak melaporkan pengiriman. Untuk mengonfirmasi bahwa suatu peristiwa telah tiba, periksa target.

Bagian ini berisi topik berikut: