路由到消息隊(duì)列RabbitMQ版
您可以通過事件規(guī)則過濾事件,將事件路由到云消息隊(duì)列 RabbitMQ 版。本文以自定義事件為例介紹將事件路由到云消息隊(duì)列 RabbitMQ 版的前提條件、操作步驟和結(jié)果驗(yàn)證。
前提條件
事件總線EventBridge
云消息隊(duì)列 RabbitMQ 版
步驟一:添加自定義事件源
- 登錄事件總線EventBridge控制臺,在左側(cè)導(dǎo)航欄,單擊事件總線。
- 在頂部菜單欄,選擇地域,在事件總線頁面,單擊目標(biāo)自定義事件總線名稱。
- 在左側(cè)導(dǎo)航欄,單擊事件源,然后單擊添加事件源。
- 在添加自定義事件源面板,輸入名稱和描述,事件提供方選擇自定義應(yīng)用,然后單擊確定。
步驟二:創(chuàng)建事件規(guī)則
目標(biāo)服務(wù)和事件規(guī)則必須處于同一地域。
- 登錄事件總線EventBridge控制臺。
- 在左側(cè)導(dǎo)航欄,單擊事件總線。
- 在頂部菜單欄,選擇地域。
- 在事件總線頁面,單擊目標(biāo)總線名稱。
- 在左側(cè)導(dǎo)航欄,單擊事件規(guī)則。
在事件規(guī)則頁面,單擊創(chuàng)建規(guī)則。
在創(chuàng)建規(guī)則頁面,完成以下操作。
在配置基本信息配置向?qū)В?b id="uicontrol-7ie-mdd-ikg" data-tag="uicontrol" data-isbold="true" class="uicontrol">名稱文本框輸入規(guī)則名稱,在描述文本框輸入規(guī)則的描述,然后單擊下一步。
在配置事件模式配置向?qū)В?b id="uicontrol-xuo-qdt-usm" data-tag="uicontrol" data-isbold="true" class="uicontrol">事件源類型選擇自定義事件源,事件源選擇步驟一添加的自定義事件源,在模式內(nèi)容代碼框輸入事件模式,然后單擊下一步。
如需了解更多信息,請參見事件模式。
在配置事件目標(biāo)配置向?qū)В渲檬录繕?biāo),然后單擊創(chuàng)建。
說明1個事件規(guī)則最多可以添加5個目標(biāo)。
事件目標(biāo)云消息隊(duì)列 RabbitMQ 版涉及配置的參數(shù)如下:
參數(shù)名稱
參數(shù)說明
服務(wù)類型
單擊消息隊(duì)列 RabbitMQ 版。
實(shí)例 ID
選擇已創(chuàng)建的消息隊(duì)列 RabbitMQ 版的實(shí)例ID。
Vhost
選擇已創(chuàng)建的Vhost。
目標(biāo)類型
選擇Exchange或Queue。
Exchange
選擇已創(chuàng)建的Exchange。僅當(dāng)目標(biāo)類型選擇為Exchange時,需配置此參數(shù)。
消息路由規(guī)則(Routing Key)
單擊部分事件或固定值。僅當(dāng)目標(biāo)類型選擇為Exchange時,需配置此參數(shù)。
Queue
選擇已創(chuàng)建的Queue。僅當(dāng)目標(biāo)類型選擇為Queue時,需配置此參數(shù)。
消息體(Body)
單擊完整事件、部分事件、固定值或模板。
MessageId
單擊部分事件、固定值或模板。
自定義屬性(Properties)
單擊部分事件或模板。
說明該參數(shù)取值類型為Map。
以下分別提供事件總線EventBridge的事件內(nèi)容轉(zhuǎn)換類型的示例。更多信息,請參見事件內(nèi)容轉(zhuǎn)換。
- 部分事件示例:
$.data.body
- 常量示例:
請注意告警!
- 變量和模板的示例:
變量示例:
{ "type":"$.type" }
模板示例:
The event type is ${type}.
- 部分事件示例:
步驟三:發(fā)布事件
- 登錄事件總線EventBridge控制臺,在左側(cè)導(dǎo)航欄,單擊事件總線。
- 在頂部菜單欄,選擇地域。
- 在事件總線頁面,找到目標(biāo)總線,在其右側(cè)操作列單擊發(fā)布事件。說明 僅自定義事件總線支持通過控制臺發(fā)布事件。
- 在發(fā)布事件至自定義事件總線面板,自定義事件源下拉列表選擇已創(chuàng)建的自定義事件源,在事件體代碼框輸入事件內(nèi)容,然后單擊確定。事件包含的參數(shù)規(guī)范,請參見事件概述。
結(jié)果驗(yàn)證
您可以在云消息隊(duì)列 RabbitMQ 版控制臺確認(rèn)是否接收到事件。
登錄云消息隊(duì)列 RabbitMQ 版控制臺,然后在左側(cè)導(dǎo)航欄選擇實(shí)例列表。
在實(shí)例列表頁面的頂部菜單欄選擇地域,然后在實(shí)例列表中,單擊目標(biāo)實(shí)例名稱。
在實(shí)例列表頁面,找到目標(biāo)實(shí)例,在其右側(cè)操作列選擇 。
在消息查詢頁面,選擇查詢方式為按 Queue 查詢,選擇要查詢消息的Queue和時間范圍,然后單擊查詢。
接收到的示例消息內(nèi)容如下所示:
{
"datacontenttype":"application/json;charset=utf-8",
"aliyunaccountid":"143998900779****",
"data":{
"envelope":{
"deliveryTag":98,
"exchange":"",
"redeliver":false,
"routingKey":"housekeeping"
},
"body":{
"Hello":"EventBridge"
},
"props":{
"contentEncoding":"UTF-8",
"messageId":"f7622d51-e198-41de-a072-77c1ead7****"
}
},
"subject":"acs:amqp:cn-hangzhou:143998900779****:/instances/amqp-cn-zvp2av0m****/vhosts/eb-connect/queues/housekeeping",
"aliyunoriginalaccountid":"143998900779****",
"source":"housekeeping.rabbitmq",
"type":"amqp:Queue:SendMessage",
"aliyunpublishtime":"2021-08-12T06:56:50.783Z",
"specversion":"1.0",
"aliyuneventbusname":"Housekeeping-Connect",
"id":"8b09e19b-8cbd-4c46-ab77-9cc39c44****",
"time":"2021-08-12T06:56:40.709Z",
"aliyunregionid":"cn-hangzhou"
}