事件内容转化
更新时间: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出现问题,请及时处理.
            