事件内容转化
更新时间:2025-05-08
概述
事件总线EventBridge支持事件内容转换,即在事件被路由到事件目标前,事件总线EventBridge可以把标准事件转换为事件目标能接收的事件类型。本文介绍事件总线EventBridge提供的事件转换类型。
事件内容转化
事件总线EventBridge支持的事件内容转换类型如下:完整事件,部分事件,常量,变量模板
完整事件
当转化类型为完整事件时,事件总线EventBridge不对事件进行转换,将原生CloudEvents的完整结构路由到事件目标。下表介绍经过完整事件转换前后的事件示例。
- 转化前
Plain Text
1{
2 "data": {
3 "info": "系统出现异常",
4 "advice": "请联系管理员"
5 },
6 "id": "*****",
7 "source": "BCE_BCC",
8 "specversion": "1.0",
9 "type": "driverInstallError",
10 "subject": "*****",
11 "time": "2020-11-19T21:04:41+08:00",
12 "level": "WARNING",
13 "accountId": "*****",
14 "eventBusId": "eb-1b63902d",
15 "eventBusName": "defualt",
16 "eventAlias": "驱动安装失败",
17 "eventAliasEn": "driverInstallError",
18 "region": "bj",
19 "recvTimestamp": "2020-11-19T21:04:41+08:00"
20}
- 转化类型
Plain Text
1 完整事件
- 转换后事件
Plain Text
1{
2 "data": {
3 "info": "系统出现异常",
4 "advice": "请联系管理员"
5 },
6 "id": "*****",
7 "source": "BCE_BCC",
8 "specversion": "1.0",
9 "type": "driverInstallError",
10 "subject": "*****",
11 "time": "2020-11-19T21:04:41+08:00",
12 "level": "WARNING",
13 "accountId": "*****",
14 "eventBusId": "eb-1b63902d",
15 "eventBusName": "defualt",
16 "eventAlias": "驱动安装失败",
17 "eventAliasEn": "driverInstallError",
18 "region": "bj",
19 "recvTimestamp": "2020-11-19T21:04:41+08:00"
20}
部分事件
当转换类型为部分事件时,事件总线EventBridge通过JSONPath从CloudEvents中提取事件中的参数,将指定的事件内容路由到事件目标。下表介绍经过部分事件转换前后的事件示例。
- 转化前
Plain Text
1{
2 "data": {
3 "info": "系统出现异常",
4 "advice": "请联系管理员"
5 },
6 "id": "*****",
7 "source": "BCE_BCC",
8 "specversion": "1.0",
9 "type": "driverInstallError",
10 "subject": "*****",
11 "time": "2020-11-19T21:04:41+08:00",
12 "level": "WARNING",
13 "accountId": "*****",
14 "eventBusId": "eb-1b63902d",
15 "eventBusName": "defualt",
16 "eventAlias": "驱动安装失败",
17 "eventAliasEn": "driverInstallError",
18 "region": "bj",
19 "recvTimestamp": "2020-11-19T21:04:41+08:00"
20}
- 转化类型
Plain Text
1 部分事件:$.eventBusId
- 转换后事件
Plain Text
1 eb-1b63902d
常量
当转换类型为常量时,事件只起到触发器的作用,不管事件内容是什么,事件总线EventBridge都把常量路由到事件目标。下表介绍经过常量转换前后的事件示例。
- 转化前
Plain Text
1{
2 "data": {
3 "info": "系统出现异常",
4 "advice": "请联系管理员"
5 },
6 "id": "*****",
7 "source": "BCE_BCC",
8 "specversion": "1.0",
9 "type": "driverInstallError",
10 "subject": "*****",
11 "time": "2020-11-19T21:04:41+08:00",
12 "level": "WARNING",
13 "accountId": "*****",
14 "eventBusId": "eb-1b63902d",
15 "eventBusName": "defualt",
16 "eventAlias": "驱动安装失败",
17 "eventAliasEn": "driverInstallError",
18 "region": "bj",
19 "recvTimestamp": "2020-11-19T21:04:41+08:00"
20}
- 转化类型
Plain Text
1 常量:test
- 转换后事件
Plain Text
1 test
变量模版
当转换类型为模板时,通过自定义模板定义模板里需要的变量,事件总线EventBridge通过JSONPath从CloudEvents提取事件中的参数,把这些值存放在变量中,然后按照模板定义的格式路由到事件目标。下表介绍经过模板转换前后的事件示例。
- 转化前
Plain Text
1{
2 "data": {
3 "info": "系统出现异常",
4 "advice": "请联系管理员"
5 },
6 "id": "id1",
7 "source": "BCE_BCC",
8 "specversion": "1.0",
9 "type": "driverInstallError",
10 "subject": "*****",
11 "time": "2020-11-19T21:04:41+08:00",
12 "level": "WARNING",
13 "accountId": "*****",
14 "eventBusId": "eb-1b63902d",
15 "eventBusName": "defualt",
16 "eventAlias": "驱动安装失败",
17 "eventAliasEn": "driverInstallError",
18 "region": "bj",
19 "recvTimestamp": "2020-11-19T21:04:41+08:00"
20}
- 转化类型
Plain Text
1变量:JSONPath提取的值可以是变量,也可以是常量。
2{
3 "id":"$.id",
4 "constant":"请及时处理."
5}
6
7模板
8`实例 ${id} 出现问题,${constant}`
- 转换后事件
Plain Text
1实例id1出现问题,请及时处理.