您可以通过事件规则过滤事件,将事件路由到云消息队列 RocketMQ 版。本文以自定义事件为例介绍将事件路由到云消息队列 RocketMQ 版的前提条件、操作步骤和结果验证。
前提条件
-
事件总线EventBridge
-
云消息队列 RocketMQ 版
步骤一:添加自定义事件源
- 登录事件总线EventBridge控制台,在左侧导航栏,单击事件总线。
- 在顶部菜单栏,选择地域,在事件总线页面,单击目标自定义事件总线名称。
- 在左侧导航栏,单击事件源,然后单击添加事件源。
-
在添加自定义事件源面板,输入名称和描述,事件提供方选择自定义应用,然后单击确认。
步骤二:创建事件规则
重要 目标服务和事件规则必须处于同一地域。
- 登录事件总线EventBridge控制台。
- 在左侧导航栏,单击事件总线。
- 在顶部菜单栏,选择地域。
- 在事件总线页面,单击目标总线名称。
- 在左侧导航栏,单击事件规则。
- 在事件规则页面,单击创建规则。
- 在创建规则页面,完成以下操作。
- 在配置基本信息配置向导,在名称文本框输入规则名称,在描述文本框输入规则的描述,然后单击下一步。
- 在配置事件模式配置向导,事件源类型选择自定义事件源,事件源选择步骤一添加的自定义事件源,在模式内容代码框输入事件模式,然后单击下一步。
如需了解更多信息,请参见事件模式。
- 在配置事件目标配置向导,配置事件目标,然后单击创建。
说明 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.KEYSTags 事件总线EventBridge通过JSONPath提取事件中的数据,将指定的事件内容路由到事件目标。 部分事件
$.data.systemProperties.TAGS针对事件内容,事件总线EventBridge提供不同的转换类型,详细信息,请参见事件内容转换。每种类型的简单示例如下:
- 部分事件示例:
$.data.body - 常量示例:
请注意告警! - 变量和模板的示例:
变量示例:
{ "type":"$.type" }模板示例:
The event type is ${type}.
- 部分事件示例:
步骤三:发布事件
- 登录事件总线EventBridge控制台,在左侧导航栏,单击事件总线。
- 在顶部菜单栏,选择地域。
在事件总线页面,找到目标总线,在其右侧操作列单击发布事件。
说明仅自定义事件总线支持通过控制台发布事件。
在发布事件至自定义事件总线面板,自定义事件源下拉列表选择已创建的自定义事件源,在事件体代码框输入事件内容,然后单击确认。
事件包含的参数规范,请参见事件概述。
结果验证
您可以在云消息队列 RocketMQ 版控制台确认是否接收到事件。
在左侧导航栏,单击实例列表。
在顶部菜单栏,选择地域,如华东1(杭州)。
- 在实例列表页面,找到目标实例,在其右侧操作列选择。
- 在消息查询页面,选择查询方式:为按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"
}
}
该文章对您有帮助吗?