您可以通过事件规则过滤事件,将事件路由到消息队列RabbitMQ版。本文以自定义事件为例介绍将事件路由到消息队列RabbitMQ版的前提条件、操作步骤和结果验证。

前提条件

步骤一:创建自定义事件源

  1. 登录事件总线EventBridge控制台
  2. 在左侧导航栏,选择事件驱动 > 事件源
  3. 在顶部菜单栏,选择地域。
  4. 事件源页面,单击自定义事件源页签,然后单击添加事件源
  5. 添加自定义事件源面板,输入名称和描述,选择事件提供方,选择自定义总线,然后单击确定
    您可以单击创建新的自定义总线,将自定义事件源关联到一个新的自定义总线。
    说明 支持新增自定义事件源的类型包括消息队列RocketMQ版消息队列RabbitMQ版消息服务MNS

步骤二:创建事件规则

注意 目标服务和事件规则必须处于同一地域。
  1. 登录事件总线EventBridge控制台
  2. 在左侧导航栏,选择事件驱动 > 事件规则
  3. 在顶部菜单栏,选择地域。
  4. 事件规则页面,选择步骤一自定义事件源关联的自定义总线,然后单击创建规则
  5. 在配置向导页面,完成以下操作。
    1. 配置基本信息页面,在名称文本框输入规则名称,在描述文本框输入规则的描述,然后单击下一步
    2. 配置事件模式页面,选择自定义事件源事件源选择步骤一创建的自定义事件源,在事件模式内容代码框输入事件模式,然后单击下一步

      如需了解更多信息,请参见事件模式

    3. 配置事件目标页面,配置事件目标,然后单击创建
      说明 1个事件规则最多可以添加5个目标。

      事件目标消息队列RabbitMQ版涉及配置的参数如下:

      参数名称 参数说明
      服务类型 单击消息队列 RabbitMQ 版
      实例 ID 选择已创建的消息队列 RabbitMQ 版的实例ID。
      Vhost 选择已创建的Vhost。
      目标类型 选择Exchange 模式Queue 模式
      Exchange 选择已创建的Exchange。仅当目标类型选择为Exchange时,需配置此参数。
      Routing Key 单击部分事件常量。仅当目标类型选择为Exchange时,需配置此参数。
      Queue 选择已创建的Queue。仅当目标类型选择为Queue 模式时,需配置此参数。
      Body 单击完整事件部分事件常量模板
      MessageId 单击部分事件常量模板
      Properties 单击部分事件模板
      说明 该参数取值类型为Map

      以下分别提供事件总线EventBridge的事件内容转换类型的示例。更多信息,请参见事件内容转换

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

        变量示例:

        {
          "type":"$.type"
        }

        模板示例:

        The event type is ${type}.

步骤三:发布事件

  1. 登录事件总线EventBridge控制台
  2. 在左侧导航栏,选择事件驱动 > 事件总线
  3. 在顶部菜单栏,选择地域。
  4. 自定义事件总线区域,找到目标总线,在其右侧操作列单击发布事件
    说明 仅自定义总线支持通过控制台发布事件。
  5. 发布事件至自定义总线面板,从自定义事件源下拉列表中,选择自定义事件源,在事件体代码框输入事件内容,然后单击确定
    事件包含的参数规范,请参见事件概述

结果验证

您可以在消息队列RabbitMQ版控制台确认是否接收到事件。

  1. 登录消息队列RabbitMQ版控制台
  2. 概览页面的资源分布区域,选择地域。
  3. 实例列表页面,找到目标实例,在其右侧操作列选择更多 > 消息查询
  4. 消息查询页面,选择查询方式按 Queue 查询,选择要查询消息的VhostQueue,设置查询时间范围,然后单击查询

接收到的示例消息内容如下所示:

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