全部產品
Search
文件中心

EventBridge:路由到訊息佇列RocketMQ版

更新時間:Dec 27, 2024

您可以通過事件規則過濾事件,將事件路由到雲訊息佇列 RocketMQ 版。本文以自訂事件為例介紹將事件路由到雲訊息佇列 RocketMQ 版的前提條件、操作步驟和結果驗證。

前提條件

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

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

步驟二:建立事件規則

重要 目標服務和事件規則必須處於同一地區。
  1. 登入事件匯流排EventBridge控制台
  2. 在左側導覽列,單擊事件匯流排
  3. 在頂部功能表列,選擇地區。
  4. 事件匯流排頁面,單擊目標匯流排名稱。
  5. 在左側導覽列,單擊事件規則
  6. 事件規則頁面,單擊建立規則
  7. 建立規則頁面,完成以下操作。
    1. 配置基本信息設定精靈,在名称文字框輸入規則名稱,在描述文字框輸入規則的描述,然後單擊下一步
    2. 配置事件模式設定精靈,事件源类型選擇自定义事件源事件源選擇步驟一添加的自訂事件來源,在模式内容代碼框輸入事件模式,然後單擊下一步

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

    3. 配置事件目标設定精靈,配置事件目標,然後單擊创建
      說明 1個事件規則最多可以添加5個目標。

      事件目標雲訊息佇列 RocketMQ 版涉及配置的參數如下:

      參數名稱參數說明
      服务类型單擊消息队列 RocketMQ 版
      实例 ID選擇已建立的消息队列 RocketMQ 版的執行個體ID。
      Topic選擇已建立的Topic。
      訊息體(Body)事件匯流排EventBridge通過JSONPath提取事件中的資料,將指定的事件內容路由到事件目標。例如:

      部分事件

      $.data.body
      自訂屬性(Properties)事件匯流排EventBridge通過JSONPath提取事件中的資料,將指定的屬性路由到事件目標。例如:

      模板

      變數
      {
        "userProperties":"$.data.userProperties",
        "msgId":"$.data.systemProperties.UNIQ_KEY"
      }
      模板
      {
        "EB_SYS_EMBED_OBJECT":"${userProperties}",
        "UNIQ_KEY":"${msgId}"
      }
      訊息索引(Keys)事件匯流排EventBridge通過JSONPath提取事件中的資料,將指定的事件內容路由到事件目標。

      部分事件

      $.data.systemProperties.KEYS
      Tags事件匯流排EventBridge通過JSONPath提取事件中的資料,將指定的事件內容路由到事件目標。

      部分事件

      $.data.systemProperties.TAGS

      針對事件內容,事件匯流排EventBridge提供不同的轉換類型,詳細資料,請參見事件內容轉換。每種類型的簡單樣本如下:

      • 部分事件樣本:
        $.data.body
      • 常量樣本:
        請注意警示!
      • 變數模板的樣本:

        變數樣本:

        {
          "type":"$.type"
        }

        模板樣本:

        The event type is ${type}.

步驟三:發布事件

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

結果驗證

您可以在雲訊息佇列 RocketMQ 版控制台確認是否接收到事件。

  1. 登入雲訊息佇列 RocketMQ 版控制台

  2. 在左側導覽列,單擊实例列表

  3. 在頂部功能表列,選擇地區,如華東1(杭州)

  4. 实例列表頁面,找到目標執行個體,在其右側操作列選擇更多 > 消息查询
  5. 消息查询頁面,選擇查詢方式按Topic查詢,選擇要查詢訊息的Topic,設定要查詢的時間範圍,然後單擊查询

接收到的樣本訊息內容如下所示:

{
    "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"
    }
}