配置数据转换

最近更新时间:2026-06-24 10:22:23

我的收藏

操作场景

除了基础事件筛选之外,EventBridge 还提供简单的数据处理功能,通过传入数据和配置项,可以实现对数据格式化处理,然后返回处理完成的结构化数据,分发下游目标,构建数据源和数据处理系统间的桥梁。
说明:
数据处理后得到的结构化数据会用于替换 data 字段内容。

操作步骤

下文将以云服务事件集配置事件数据转换为例,介绍详细的操作步骤。

创建规则

1. 登录 事件总线控制台,选择云服务事件集
2. 在事件集详情页,单击管理事件规则,进行新增规则配置。如下图所示:

3. 进入事件规则页面,单击新建。如下图所示:

4. 根据页面提示填写相关信息,勾选数据转换,如下图所示。

事件示例:单击事件示例,可展开一个事件结构实例,为配置事件匹配规则做参考。
事件匹配:用于事件的过滤筛选,通过配置事件模式,筛选需要转换的事件数据。您可以定义事件来源(source)、事件类型(type)等字段的匹配规则,仅匹配的事件数据会进入后续的数据转换流程。
5. 单击下一步,设置数据转换规则。如下图所示:

事件模式:支持示例事件(模板数据)或者手动输入(自定义)。
转换目标:可以配置完整事件或通过变量获取部分事件
解析格式:支持 JSON、分隔符、正则提取三种解析方式。
6. 选择解析模式后,单击确认,开始解析数据。
7. 解析完成后,设置事件匹配规则、过滤器规则和数据处理方式

过滤器:仅输出符合过滤器规则的数据。过滤器的匹配模式支持前缀匹配后缀匹配包含匹配(contains)除外匹配(except)
详情参见 过滤器规则说明
数据处理:TYPE 有默认系统预设映射JSONPATH自定义、模板六种。
TYPE = 默认:VALUE 从解析结果中映射,不可编辑。
TYPE = 系统预设:可以选择系统预设的 VALUE ,目前支持 DATE(时间戳)。
TYPE = 映射:可以选择已有的 KEY,最终输出的 VALUE 值由指定的 KEY 映射而来。
TYPE = JSONPATH:可以手动编辑 VALUE。可参考 JSONPATH 示例
TYPE = 自定义:可以输入自定义 VALUE。
TYPE = 模板:支持 Go 语言模板,内置 JSONPATH 函数,可以自定义 VALUE。可参考 模板示例
8. 单击测试,查看测试结果。

9. 单击下一步,完成事件目标配置。事件目标定义了数据转换后的输出目标,支持将转换后的结构化数据投递到指定的云服务或自定义端点。事件总线当前支持以下事件目标,详细内容请参见:
消息推送(仅支持云服务事件集中的规则)

编辑规则

您可以在规则详情页面进行规则的编辑、删除和添加操作。
在规则详情页面,单击数据转换模块右上角的编辑/删除,可修改/删除数据转换规则。

如需在已有事件规则中添加数据转换功能,可在规则详情页中,单击数据转换右侧的添加,然后根据页面提示进行配置。


过滤器规则说明

过滤器可以对数据进行规则过滤,例如过滤字段的大小等,符合规则的数据才会被保留。

注意事项

过滤器匹配是逐个字符精确匹配的 ,需注意大小写,匹配过程中不会对字符串进行任何标准化的操作。
要匹配的值遵循 JSON 规则:用引号引起来的字符串、数字以及不带引号的关键字 true、false 和 null。

前缀匹配

您可以对比数据中的前缀进行键值匹配。
例如数据 {"id":"topicname"},指定 id 的前缀匹配值为 top,则 {"id":"topicname"} 可以被正常匹配。

后缀匹配

您可以对比数据中的后缀进行键值匹配。
例如数据 {"id":"topicname"},指定 id 的后缀匹配值为 name,则 {"id":"topicname"} 可以被正常匹配。

包含匹配

您可以指定数据中存在的某个字段进行匹配。
例如数据 {"id":"topicname"},指定 id 的包含匹配值为 na,则 {"id":"topicname"} 可以被正常匹配。

除外匹配

您可以指定某个字段除了提供的值之外的任何值进行匹配。
例如数据 {"id":"topicname"},指定 id 的除外匹配值为 topicname,则只有 {"id":"topicname"} 不可以被正常匹配。

数据处理配置示例

JSONPATH

基础语法

$ 根结点操作符,表示当前 JSON 结构体的根结点。
.<childName> 点操作符,表示选取当前作用对象名为 childName 的子成员。
[<index>]片选操作符,表示获取当前可迭代对象的第 index 个子成员。

示例

获取 occurTime$.data.occurTime
获取 keychangeImpact 的对应 value$.data.additionalMsg[1].value

模板

参考示例如下:
{{if eq (jsonpath . "$.source") "cvm.cloud.tencent" -}}
云服务器事件:
事件类型: {{jsonpath . "$.type"}}
地域: {{jsonpath . "$.region"}}
内容: {{jsonpath . "$.data.additionalMsg[0].value"}}, {{jsonpath . "$.data.additionalMsg[1].value"}}
{{- end}}
解析后得到:"云服务器事件: \\n事件类型: cvm:ErrorEvent:changeNotification\\n地域: ap-guangzhou\\n内容: 为了给您提供优质稳定的存储服务,腾讯云计划对宿主机执行底层存储组件升级, CVM,ES,TCHouse 云盘出现1次1-4秒内 IO 抖动"。

事件内容示例

{
"specversion": "1.0",
"id": "54ae3f54-c8fd-46f5-99f3-1f6d958a01a9",
"source": "cvm.cloud.tencent",
"type": "cvm:ErrorEvent:changeNotification",
"datacontenttype": "application/json;charset=utf-8",
"time": 1753778526000,
"region": "ap-guangzhou",
"status": "-",
"data": {
"occurTime": 1753778526000,
"additionalMsg": [
{
"key": "changeDetail",
"value": "为了给您提供优质稳定的存储服务,腾讯云计划对宿主机执行底层存储组件升级"
},
{
"key": "changeImpact",
"value": "CVM,ES,TCHouse 云盘出现1次1-4秒内IO抖动"
}
],
"dimensions": [
{
"key": "zone",
"value": "ap-guangzhou-1"
}
]
}
}