全部產品
Search
文件中心

EventBridge:路由到Simple Message Queue (formerly MNS)

更新時間:Jan 04, 2025

您可以通過事件規則過濾事件,將事件路由到輕量訊息佇列(原 MNS)的隊列。本文以自訂事件為例介紹將事件路由到Simple Message Queue (formerly MNS)的前提條件、操作步驟和結果驗證。

前提條件

步驟一:添加自訂事件來源

  1. 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排
  2. 在頂部功能表列,選擇地區,在事件匯流排頁面,單擊目標自訂事件匯流排名稱。
  3. 在左側導覽列,單擊事件來源,然後單擊添加事件來源
  4. 添加自訂事件來源面板,輸入名稱描述事件提供方選擇自訂應用,然後單擊確定

步驟二:建立事件規則

重要

目標服務和事件規則必須處於同一地區。

  1. 登入事件匯流排EventBridge控制台
  2. 在左側導覽列,單擊事件匯流排
  3. 在頂部功能表列,選擇地區。
  4. 事件匯流排頁面,單擊目標匯流排名稱。
  5. 在左側導覽列,單擊事件規則
  6. 事件規則頁面,單擊建立規則

  7. 建立規則頁面,完成以下操作。

    1. 配置基本資料設定精靈,在名稱文字框輸入規則名稱,在描述文字框輸入規則的描述,然後單擊下一步

    2. 配置事件模式設定精靈,事件來源類型選擇自訂事件來源事件來源選擇步驟一添加的自訂事件來源,在事件模式內容代碼框輸入事件模式,然後單擊下一步

      如需瞭解更多資訊,請參見事件模式

    3. 配置事件目標設定精靈,配置事件目標,然後單擊建立

      說明

      1個事件規則最多可以添加5個目標。

      • 服務類型:單擊Simple Message Queue (formerly MNS)

      • 隊列:選擇已建立的隊列。

      • 訊息內容:單擊模板

        以下提供變數和模板的樣本。

        變數樣本:

        {
          "source":"$.source"
        }

        模板樣本:

        The event comes from ${source} is abnormal.

        如需瞭解更多資訊,請參見事件內容轉換

步驟三:發布事件

  1. 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排
  2. 在頂部功能表列,選擇地區。
  3. 事件匯流排頁面,找到目標匯流排,在其右側操作列單擊发布事件
    說明 僅自訂事件匯流排支援通過控制台發布事件。
  4. 發布事件至自訂事件匯流排面板,自定义事件源下拉式清單選擇已建立的自訂事件來源,在事件体代碼框輸入事件內容,然後單擊確定
    事件包含的參數規範,請參見事件概述

結果驗證

您可以在輕量訊息佇列(原 MNS)控制台確認是否接收到事件。

  1. 登入輕量訊息佇列(原 MNS)控制台

  2. 在左側導覽列,選擇队列模型 > 队列列表

  3. 在頂部功能表列,選擇地區。

  4. 隊列列表頁面,找到目標隊列,在其右側操作列選擇更多 > 收發訊息

  5. 隊列收發訊息快速體驗頁面的接收訊息地區,單擊接收訊息

    重要

    通過輕量訊息佇列(原 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
        }
    }