Gunakan aturan event untuk memfilter dan merutekan event ke Message Queue for Apache RocketMQ. Topik ini menggunakan event kustom sebagai contoh untuk menjelaskan prasyarat, prosedur, dan verifikasi.
Prasyarat
-
EventBridge
-
Message Queue for Apache RocketMQ
Langkah 1: Tambahkan sumber event kustom
- Masuk ke EventBridge console. Di panel navigasi kiri, klik Event Buses.
- Di bilah navigasi atas, pilih wilayah. Pada halaman Event Buses, klik bus event kustom yang dituju.
- Di panel navigasi kiri, klik Event Sources, lalu klik Add Event Source.
-
Pada panel Add Custom Event Source, masukkan Name dan Description. Untuk Event Provider, pilih Event Provider, lalu klik OK.
Langkah 2: Buat aturan event
Masuk ke EventBridge console.
Di panel navigasi kiri, klik Event Buses.
Di bilah navigasi atas, pilih wilayah.
Pada halaman Event Buses, klik nama bus event yang ingin Anda kelola.
Di panel navigasi kiri, klik Event Rules.
- Pada halaman Event Rules, klik Create Rule.
- Pada halaman Create Rule, selesaikan langkah-langkah berikut.
- Pada langkah Configure Basic Info, masukkan Name dan Description untuk aturan tersebut, lalu klik Next Step.
- Pada langkah Configure Event Pattern, atur Event Source Type menjadi Custom Event Source, pilih sumber event kustom yang telah Anda buat di Langkah 1 dari daftar drop-down Event Source, masukkan pola peristiwa di editor kode Pattern Content, lalu klik Next Step.
Untuk informasi selengkapnya, lihat Event patterns.
- Pada langkah Configure Targets, konfigurasikan target event, lalu klik Create.
Catatan Satu aturan event dapat memiliki maksimal lima target event.
Parameter berikut tersedia saat Anda mengonfigurasi Message Queue for Apache RocketMQ sebagai target event:
Parameter Deskripsi Service Type Pilih ApsaraMQ for RocketMQ. Instance ID Pilih instans ApsaraMQ for RocketMQ yang telah Anda buat. Topic Pilih topik yang telah Anda buat. Message Body EventBridge menggunakan ekspresi JSONPath untuk mengekstrak konten event sebagai isi pesan. Partial event
$.data.bodyCustom Property EventBridge menggunakan ekspresi JSONPath untuk mendefinisikan variabel dari event dan templat untuk membuat properti kustom. Template
Variables:
Template:{ "userProperties":"$.data.userProperties", "msgId":"$.data.systemProperties.UNIQ_KEY" }{ "EB_SYS_EMBED_OBJECT":"${userProperties}", "UNIQ_KEY":"${msgId}" }Message Key EventBridge menggunakan ekspresi JSONPath untuk mengekstrak konten event sebagai kunci pesan. Partial event
$.data.systemProperties.KEYSTags EventBridge menggunakan ekspresi JSONPath untuk mengekstrak konten event sebagai tag pesan. Partial event
$.data.systemProperties.TAGSEventBridge mendukung beberapa jenis transformasi konten event. Untuk informasi selengkapnya, lihat event transformation. Contoh:
- Partial Event contoh:
$.data.body - Constant contoh:
Warning! - Variables dan Template contoh:
Variables contoh:
{ "type":"$.type" }Template contoh:
The event type is ${type}.
- Partial Event contoh:
Langkah 3: Publikasikan event
Masuk ke EventBridge console.
Di panel navigasi kiri, klik Event Buses.
Di bilah navigasi atas, pilih wilayah.
Pada halaman Event Buses, temukan bus event yang dituju dan klik Publish Event di kolom Operations.
CatatanKonsol EventBridge hanya mendukung publikasi event ke bus event kustom.
Pada panel Publish Event To Custom Event Bus, konfigurasikan pengaturan berikut:
Pengaturan Deskripsi Custom Event Source Pilih sumber event kustom yang sudah ada dari daftar drop-down. Event Body Masukkan konten event. Klik OK.
Verifikasi
Untuk memverifikasi bahwa event telah diterima, lakukan kueri pesan di konsol Message Queue for Apache RocketMQ.
Masuk ke ApsaraMQ for RocketMQ console.
Di panel navigasi kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, misalnya China (Hangzhou).
- Pada halaman Instances, temukan instans yang dituju, lalu pada kolom Actions, pilih .
- Pada halaman Message Query, atur Query Method: menjadi By Topic, pilih topik yang ingin Anda kueri, tentukan Time Range, lalu klik Search.
Contoh berikut menunjukkan pesan yang diterima:
{
"id":"94ebc15f-f0db-4bbe-acce-56fb72fb****",
"source":"acs:mq",
"specversion":"1.0",
"type":"mq:Topic:SendMessage",
"datacontenttype":"application/json; charset=utf-8",
"subject":"acs:mq:cn-hangzhou:123456789098****:MQ_INST_123456789098****_BXhFHryi%TopicName",
"time":"2021-04-08T06:01:20.766Z",
"aliyunpublishtime":"2021-04-08T06:01:20.725Z",
"aliyuneventbusname":"BusName",
"data":{
"topic":"TopicName",
"systemProperties":{
"MIN_OFFSET":"0",
"TRACE_ON":"true",
"MAX_OFFSET":"8",
"MSG_REGION":"cn-hangzhou",
"KEYS":"systemProperties.KEYS",
"CONSUME_START_TIME":1628577790396,
"UNIQ_KEY":"AC14C305069E1B28CDFA3181CDA2****",
"TAGS":"systemProperties.TAGS",
"INSTANCE_ID":"MQ_INST_123456789098****_BXhFHryi"
},
"userProperties":{
},
"body":"TEST"
}
}