Anda dapat menggunakan aturan kejadian untuk memfilter dan merutekan kejadian ke Simple Message Queue (sebelumnya MNS) (SMQ). Topik ini menjelaskan prasyarat dan prosedur untuk merutekan kejadian kustom ke SMQ serta cara memverifikasi hasilnya.
Prasyarat
EventBridge
Pastikan EventBridge diaktifkan dan izin yang diperlukan telah diberikan kepada Pengguna Resource Access Management (RAM). Untuk informasi lebih lanjut, lihat Aktifkan EventBridge dan Berikan Izin kepada Pengguna RAM.
SMQ
Pastikan antrian telah dibuat. Untuk informasi lebih lanjut, lihat Buat Antrian.
Langkah 1: Buat sumber kejadian kustom
Masuk ke Konsol EventBridge. Di panel navigasi sebelah kiri, klik Event Buses.
Di bilah navigasi atas, pilih wilayah. Pada halaman Event Buses, klik nama bus kejadian kustom yang ingin Anda kelola.
Di panel navigasi sebelah kiri, klik Event Sources, lalu klik Add Event Source.
Di panel Add Custom Event Source, konfigurasikan parameter Name dan Description, pilih Aplikasi Kustom dari daftar drop-down Event Provider, lalu klik OK.
Langkah 2: Buat aturan kejadian
Target kejadian yang ingin dikonfigurasikan untuk aturan kejadian harus berada di wilayah yang sama dengan aturan tersebut.
Masuk ke Konsol EventBridge.
Di panel navigasi sebelah kiri, klik Event Buses.
Di bilah navigasi atas, pilih wilayah.
Pada halaman Event Buses, klik nama bus kejadian yang ingin Anda kelola.
Di panel navigasi sebelah kiri, klik Event Rules.
Di panel navigasi sebelah kiri, klik Event Rules. Pada halaman yang muncul, klik Create Rule.
Dalam panduan Create Rule, ikuti langkah-langkah berikut:
Di langkah Configure Basic Info, masukkan nama aturan di bidang Name dan deskripsi aturan di bidang Description. Lalu, klik Next Step.
Di langkah Configure Event Pattern, atur parameter Event Source Type menjadi Custom Event Source dan pilih sumber kejadian kustom yang Anda konfigurasikan di Langkah 1 dari daftar drop-down Event Source. Lalu, di editor kode Pattern Content, tentukan pola kejadian dan klik Next step.
Untuk informasi lebih lanjut, lihat Pola Kejadian.
Di langkah Configure Targets, konfigurasikan target kejadian dan klik Create.
CatatanAnda dapat mengonfigurasi hingga lima target kejadian untuk sebuah aturan kejadian.
Service Type: Pilih SMQ.
Queue: Pilih antrian SMQ yang Anda buat.
Message Body: Pilih Template.
Kode sampel berikut memberikan contoh variabel dan template:
Variabel sampel:
{ "source":"$.source" }Template sampel:
Kejadian berasal dari ${source} tidak normal.Untuk informasi lebih lanjut, lihat Transformasi Kejadian.
Langkah 3: Publikasikan kejadian
Masuk ke Konsol EventBridge. Di panel navigasi sebelah kiri, klik Event Buses.
- Di bilah navigasi atas, pilih wilayah.
- Pada halaman Event Buses, temukan bus kejadian tempat Anda ingin mempublikasikan kejadian dan klik Publish Event di kolom Operations.Catatan Anda hanya dapat mempublikasikan kejadian ke bus kejadian kustom di Konsol EventBridge.
- Di panel Publish Event to Custom Event Bus, pilih sumber kejadian kustom dari daftar drop-down Custom Event Source, masukkan konten kejadian di editor kode Event Body, lalu klik OK.Untuk informasi lebih lanjut tentang parameter kejadian, lihat Ikhtisar.
Verifikasi hasil
Anda dapat memeriksa apakah kejadian diterima di Konsol SMQ.
Masuk ke Konsol SMQ.
Di panel navigasi sebelah kiri, pilih Queue Model > Queues.
Di bilah navigasi atas, pilih wilayah.
Pada halaman Queues, temukan antrian tempat Anda merutekan kejadian dan pilih di kolom Actions.
Di bagian Receive Message pada halaman Quick Experience, klik Receive Message.
PentingSaat Anda menerima kejadian terkirim menggunakan SMQ SDK for Java, pesan yang diterima muncul sebagai karakter tidak jelas karena badan pesan tidak dikodekan dalam Base64. Oleh karena itu, Anda harus menggunakan metode getMessageBodyAsRawBytes atau getMessageBodyAsRawString untuk mendapatkan badan kejadian.
Kode sampel berikut memberikan contoh kejadian yang diterima:
{ "id":"22h0iaji-8cf5-2iea-j4a6-i99a5j1a****", "source":"acs.oss", "specversion":"1.0", "type":"oss:ObjectCreated:PostObject", "datacontenttype":"application/json;charset=utf-8", "dataschema":"http://example.com/item.json", "subject":"acs:oss:cn-hangzhou:<yourAccountId>:xls-papk/game_apk/123.jpg", "aliyunaccountid":"165228866041****", "aliyunpublishtime":"2020-10-14T17:00:03.628Asia/Shanghai", "aliyuneventbusname":"MyEventBus", "aliyunpublishaddr":"10.0.XX.XX", "data":{ "name":"Eventbridge", "number":100 } }