您可以通過事件規(guī)則過濾事件,將事件路由到消息隊列RocketMQ版。本文以自定義事件為例介紹將事件路由到消息隊列RocketMQ版的前提條件、操作步驟和結(jié)果驗證。

步驟一:添加自定義事件源

  1. 登錄事件總線EventBridge控制臺,在左側(cè)導(dǎo)航欄,單擊事件總線
  2. 在頂部菜單欄,選擇地域,在事件總線頁面,單擊目標(biāo)自定義事件總線名稱。
  3. 在左側(cè)導(dǎo)航欄,單擊事件源,然后單擊添加事件源
  4. 添加自定義事件源面板,輸入名稱描述,事件提供方選擇自定義應(yīng)用,然后單擊確定。

步驟二:創(chuàng)建事件規(guī)則

重要 目標(biāo)服務(wù)和事件規(guī)則必須處于同一地域。
  1. 登錄事件總線EventBridge控制臺。
  2. 在左側(cè)導(dǎo)航欄,單擊事件總線。
  3. 在頂部菜單欄,選擇地域。
  4. 事件總線頁面,單擊目標(biāo)總線名稱。
  5. 在左側(cè)導(dǎo)航欄,單擊事件規(guī)則。
  6. 事件規(guī)則頁面,單擊創(chuàng)建規(guī)則。
  7. 創(chuàng)建規(guī)則頁面,完成以下操作。
    1. 配置基本信息配置向?qū)?,?span id="z68uejxpaoma" class="ph uicontrol" id="uicontrol-oiy-nnj-mvl">名稱文本框輸入規(guī)則名稱,在描述文本框輸入規(guī)則的描述,然后單擊下一步
    2. 配置事件模式配置向?qū)В?span id="z68uejxpaoma" class="ph uicontrol" id="uicontrol-lwc-0wu-0v2">事件源類型選擇自定義事件源,事件源選擇步驟一添加的自定義事件源,在模式內(nèi)容代碼框輸入事件模式,然后單擊下一步

      如需了解更多信息,請參見事件模式。

    3. 配置事件目標(biāo)配置向?qū)?,配置事件目?biāo),然后單擊創(chuàng)建。
      說明 1個事件規(guī)則最多可以添加5個目標(biāo)。

      事件目標(biāo)消息隊列RocketMQ版涉及配置的參數(shù)如下:

      參數(shù)名稱 參數(shù)說明
      服務(wù)類型 單擊消息隊列 RocketMQ 版。
      實例 ID 選擇已創(chuàng)建的消息隊列 RocketMQ 版的實例ID。
      Topic 選擇已創(chuàng)建的Topic。
      消息體(Body) 事件總線EventBridge通過JSONPath提取事件中的數(shù)據(jù),將指定的事件內(nèi)容路由到事件目標(biāo)。例如:

      部分事件

      $.data.body
      自定義屬性(Properties) 事件總線EventBridge通過JSONPath提取事件中的數(shù)據(jù),將指定的屬性路由到事件目標(biāo)。例如:

      模板

      變量
      {
        "userProperties":"$.data.userProperties",
        "msgId":"$.data.systemProperties.UNIQ_KEY"
      }
      模板
      {
        "EB_SYS_EMBED_OBJECT":"${userProperties}",
        "UNIQ_KEY":"${msgId}"
      }
      消息索引(Keys) 事件總線EventBridge通過JSONPath提取事件中的數(shù)據(jù),將指定的事件內(nèi)容路由到事件目標(biāo)。

      部分事件

      $.data.systemProperties.KEYS
      Tags 事件總線EventBridge通過JSONPath提取事件中的數(shù)據(jù),將指定的事件內(nèi)容路由到事件目標(biāo)。

      部分事件

      $.data.systemProperties.TAGS

      針對事件內(nèi)容,事件總線EventBridge提供不同的轉(zhuǎn)換類型,詳細(xì)信息,請參見事件內(nèi)容轉(zhuǎn)換。每種類型的簡單示例如下:

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

        變量示例:

        {
          "type":"$.type"
        }

        模板示例:

        The event type is ${type}.

步驟三:發(fā)布事件

  1. 登錄事件總線EventBridge控制臺,在左側(cè)導(dǎo)航欄,單擊事件總線
  2. 在頂部菜單欄,選擇地域。
  3. 事件總線頁面,找到目標(biāo)總線,在其右側(cè)操作列單擊發(fā)布事件。
    說明 僅自定義事件總線支持通過控制臺發(fā)布事件。
  4. 發(fā)布事件至自定義事件總線面板,自定義事件源下拉列表選擇已創(chuàng)建的自定義事件源,在事件體代碼框輸入事件內(nèi)容,然后單擊確定
    事件包含的參數(shù)規(guī)范,請參見事件概述

結(jié)果驗證

您可以在消息隊列RocketMQ版控制臺確認(rèn)是否接收到事件。

  1. 登錄消息隊列RocketMQ版控制臺。
  2. 在左側(cè)導(dǎo)航欄,單擊實例列表。
  3. 在頂部菜單欄,選擇地域,如華東1(杭州)。
  4. 實例列表頁面,找到目標(biāo)實例,在其右側(cè)操作列選擇更多 > 消息查詢。
  5. 消息查詢頁面,選擇查詢方式按Topic查詢,選擇要查詢消息的Topic,設(shè)置要查詢的時間范圍,然后單擊查詢。

接收到的示例消息內(nèi)容如下所示:

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