您可以通過事件規則過濾事件,將事件路由到輕量訊息佇列(原 MNS)的隊列。本文以自訂事件為例介紹將事件路由到Simple Message Queue (formerly MNS)的前提條件、操作步驟和結果驗證。
前提條件
事件匯流排EventBridge
輕量訊息佇列(原 MNS)
步驟一:添加自訂事件來源
- 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排。
- 在頂部功能表列,選擇地區,在事件匯流排頁面,單擊目標自訂事件匯流排名稱。
- 在左側導覽列,單擊事件來源,然後單擊添加事件來源。
在添加自訂事件來源面板,輸入名稱和描述,事件提供方選擇自訂應用,然後單擊確定。
步驟二:建立事件規則
目標服務和事件規則必須處於同一地區。
- 登入事件匯流排EventBridge控制台。
- 在左側導覽列,單擊事件匯流排。
- 在頂部功能表列,選擇地區。
- 在事件匯流排頁面,單擊目標匯流排名稱。
- 在左側導覽列,單擊事件規則。
在事件規則頁面,單擊建立規則。
在建立規則頁面,完成以下操作。
在配置基本資料設定精靈,在名稱文字框輸入規則名稱,在描述文字框輸入規則的描述,然後單擊下一步。
在配置事件模式設定精靈,事件來源類型選擇自訂事件來源,事件來源選擇步驟一添加的自訂事件來源,在事件模式內容代碼框輸入事件模式,然後單擊下一步。
如需瞭解更多資訊,請參見事件模式。
在配置事件目標設定精靈,配置事件目標,然後單擊建立。
說明1個事件規則最多可以添加5個目標。
服務類型:單擊Simple Message Queue (formerly MNS)。
隊列:選擇已建立的隊列。
訊息內容:單擊模板。
以下提供變數和模板的樣本。
變數樣本:
{ "source":"$.source" }
模板樣本:
The event comes from ${source} is abnormal.
如需瞭解更多資訊,請參見事件內容轉換。
步驟三:發布事件
- 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排。
- 在頂部功能表列,選擇地區。
- 在事件匯流排頁面,找到目標匯流排,在其右側操作列單擊发布事件。說明 僅自訂事件匯流排支援通過控制台發布事件。
- 在發布事件至自訂事件匯流排面板,自定义事件源下拉式清單選擇已建立的自訂事件來源,在事件体代碼框輸入事件內容,然後單擊確定。事件包含的參數規範,請參見事件概述。
結果驗證
您可以在輕量訊息佇列(原 MNS)控制台確認是否接收到事件。
在左側導覽列,選擇 。
在頂部功能表列,選擇地區。
在隊列列表頁面,找到目標隊列,在其右側操作列選擇 。
在隊列收發訊息快速體驗頁面的接收訊息地區,單擊接收訊息。
重要通過輕量訊息佇列(原 MNS)的Java SDK接收投遞過來的事件時,由於訊息的Body沒有經過Base64編碼,會導致接收到的訊息為亂碼。因此,需要使用getMessageBodyAsRawBytes或者getMessageBodyAsRawString來擷取事件的Body。
接收到的樣本訊息內容如下所示。
{ "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 } }