事件总线
1. 事件集
1.1 创建事件集
接口描述
本接口用于创建事件集。
请求结构
1POST /v1/event-bus HTTP/1.1~~~~
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusName": "test",
8 "eventBusAlias": "test",
9 "description": ""
10}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusName | String | 是 | RequestBody参数 | 事件集名称,长度限制为2~127个字符,可以由字母、数字或短划线(-)组成。 |
| eventBusAlias | String | 否 | RequestBody参数 | 事件集别称。 |
| description | String | 否 | RequestBody参数 | 事件集描述。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| String | 事件集ID |
请求示例
1POST /v1/event-bus HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusName": "test",
8 "eventBusAlias": "test",
9 "description": ""
10}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventBusId": "eb-xxxxxxxx"
6 }
7}
1.2 更新事件集
接口描述
本接口用于更新事件集信息。
请求结构
1PUT /v1/event-bus HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-l65vlc2",
8 "eventBusName": "test",
9 "eventBusAlias": "test",
10 "description": ""
11}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 事件集ID。 |
| eventBusAlias | String | 否 | RequestBody参数 | 事件集别称。 |
| description | String | 否 | RequestBody参数 | 事件集描述。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| eventBusId | String | 事件集ID |
请求示例
1PUT /v1/event-bus HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxxxxx",
8 "eventBusAlias": "test",
9 "description": ""
10}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventBusId": "eb-xxxxxxxx"
6 }
7}
1.3 删除事件集
接口描述
本接口用于删除指定的事件集。
请求结构
1DELETE /v1/event-bus HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxxxxx"
8}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 事件集ID。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| eventBusId | String | 事件集ID |
请求示例
1DELETE /v1/event-bus HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-l65vlc2u"
8}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventBusId": "eb-xxxxxxxx"
6 }
7}
1.4 批量删除事件集
接口描述
本接口用于批量删除事件集。
请求结构
1DELETE /v1/event-bus/batch HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusIds": ["eb-xxxxx1", "eb-xxxxx2"]
8}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusIds | List<String> | 是 | RequestBody参数 | 事件集ID列表。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| eventBusId | String | 事件集ID |
请求示例
1DELETE /v1/event-bus/batch HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusIds": ["eb-xxxxx1", "eb-xxxxx2"]
8}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventBusId": "eb-xxxxxxxx"
6 }
7}
1.5 获取事件集详情
接口描述
本接口用于获取指定事件集的详细信息。
请求结构
1GET /v1/event-bus?eventBusId={eventBusId} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | Query参数 | 事件集ID。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| lastModifiedDate | String | 更新时间 |
| description | String | 事件集描述 |
| eventBusId | String | 事件集ID |
| eventBusName | String | 事件集名称 |
| eventBusAlias | String | 事件集别称 |
| accountId | String | 用户ID |
| default | Boolean | 是否默认事件总线 |
| type | String | 事件集类型。取值:系统 - system / 自定义 - custom |
| eventCount | Integer | 事件集下事件数量 |
| ruleCount | Integer | 事件集下规则数量 |
请求示例
1GET /v1/event-bus?eventBusId=eb-0gdrbv5q HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "result": {
3 "lastModifiedDate": "2022-12-12T20:09:46+08:00",
4 "description": "",
5 "eventBusId": "eb-xxxxx",
6 "eventBusName": "test",
7 "eventBusAlias": "test",
8 "accountId": "453xxxxxxxxxxxxxx",
9 "default": true,
10 "type": "system",
11 "eventCount": 10,
12 "ruleCount": 10
13 }
14}
1.6 获取事件集列表
接口描述
本接口用于获取事件集列表,支持分页和条件过滤。
请求结构
1GET /v1/event-bus/list?pageNo={pageNo}&pageSize={pageSize} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| orderBy | String | 否 | Query参数 | 排序字段,支持:modTime(修改时间)。示例值:modTime。 |
| order | String | 否 | Query参数 | 排序方式,可选值:ASC(升序)、DESC(降序)。示例值:DESC。 |
| pageNo | Integer | 是 | Query参数 | 页数。 |
| pageSize | Integer | 是 | Query参数 | 每页数量,默认值为10。 |
| type | String | 否 | Query参数 | 事件集类型:系统 - system / 自定义 - custom。 |
| keywordType | String | 否 | Query参数 | 过滤字段类型:eventBusName(事件集名称)/ EventBusId(事件集ID)。 |
| keyword | String | 否 | Query参数 | 过滤字段值,如:eb-xxxxxx。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| orderBy | String | 排序字段 |
| order | String | 排序方式 |
| pageNo | Integer | 页数 |
| pageSize | Integer | 每页数量 |
| totalCount | Integer | 总数 |
| result | List<Object> | 事件集列表 |
| result[].modTime | String | 更新时间 |
| result[].description | String | 事件集描述 |
| result[].eventBusId | String | 事件集ID |
| result[].eventBusName | String | 事件集名称 |
| result[].eventBusAlias | String | 事件集别称 |
| result[].accountId | String | 用户ID |
| result[].default | Boolean | 是否默认事件总线 |
| result[].type | String | 事件集类型。取值:系统 - system / 自定义 - custom |
| result[].eventCount | Integer | 事件集下事件数量 |
| result[].ruleCount | Integer | 事件集下规则数量 |
请求示例
1GET /v1/event-bus/list?pageNo=1&pageSize=1 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "orderBy": "createTime",
3 "order": "desc",
4 "pageNo": 1,
5 "pageSize": 1,
6 "totalCount": 6,
7 "result": [
8 {
9 "modTime": "2022-12-12T20:09:46+08:00",
10 "description": "",
11 "eventBusId": "eb-0gdrbv5q",
12 "eventBusName": "test",
13 "eventBusAlias": "test",
14 "accountId": "453xxxxxxxxxxxxxx",
15 "default": true,
16 "type": "system",
17 "eventCount": 10,
18 "ruleCount": 10
19 }
20 ]
21}
1.7 获取事件集下所有事件(事件源-事件层级结构)
接口描述
本接口用于获取指定事件集下的所有事件,按事件源-事件层级结构返回。
请求结构
1GET /v1/event-bus/event?eventBusId={eventBusId} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | Query参数 | 事件集ID,查询该事件集下所有事件。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| data | List<Object> | 事件源-事件列表 |
| data[].eventSource | Object | 事件源信息 |
| data[].eventSource.eventBusId | String | 事件集ID |
| data[].eventSource.eventSourceId | String | 事件源ID |
| data[].eventSource.eventSourceName | String | 事件源名称 |
| data[].eventSource.eventSourceAlias | String | 事件源别称 |
| data[].eventSource.accountId | String | 用户ID |
| data[].eventSource.type | String | 事件源类型 |
| data[].eventSource.lastModifiedDate | String | 最后修改时间 |
| data[].eventSource.default | Boolean | 是否默认事件源 |
| data[].events | List<Object> | 事件列表 |
| data[].events[].eventSourceId | String | 事件源ID |
| data[].events[].eventType | String | 事件类型名称 |
| data[].events[].eventAlias | String | 事件别称 |
| data[].events[].eventAliasEn | String | 事件别称(国际化) |
| data[].events[].eventLevel | String | 事件级别 |
| data[].events[].type | String | 事件类型 |
| data[].events[].eventBusId | String | 事件集ID |
| data[].events[].demo | String | 事件结构示例 |
| data[].events[].description | String | 事件描述 |
| data[].events[].showType | String | 显示类型 |
| data[].events[].default | Boolean | 是否默认事件 |
请求示例
1GET /v1/event-bus/event?eventBusId=eb-f529ba17 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "data": [
3 {
4 "eventSource": {
5 "eventBusId": "eb-f529ba17",
6 "eventSourceId": "es-b39a3a92",
7 "eventSourceName": "zmq-test",
8 "eventSourceAlias": "",
9 "accountId": "453bf9588c9e488f9ba2c984129090dc",
10 "type": "CUSTOM",
11 "lastModifiedDate": "2024-09-13 11:21:50",
12 "default": false
13 },
14 "events": [
15 {
16 "eventSourceId": "es-b39a3a92",
17 "eventType": "eventTest",
18 "eventAlias": "事件测试",
19 "eventAliasEn": "eventTest",
20 "eventLevel": "WARNING",
21 "accountId": "453bf9588c9e488f9ba2c984129090dc",
22 "type": "CUSTOM",
23 "eventBusId": "eb-f529ba17",
24 "demo": "",
25 "description": "",
26 "showType": "NORMAL",
27 "default": false
28 }
29 ]
30 }
31 ]
32}
2. 事件源
2.1 获取事件源列表
接口描述
本接口用于获取指定事件集下的事件源列表,支持分页和条件过滤。
请求结构
1GET /v1/event-bus/source/list?eventBusId={eventBusId}&pageNo={pageNo}&pageSize={pageSize} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| orderBy | String | 否 | Query参数 | 排序字段,支持:modTime(修改时间)。示例值:modTime。 |
| order | String | 否 | Query参数 | 排序方式,可选值:ASC(升序)、DESC(降序)。示例值:DESC。 |
| pageNo | Integer | 是 | Query参数 | 页数。 |
| pageSize | Integer | 是 | Query参数 | 每页数量,默认值为10。 |
| eventBusId | String | 是 | Query参数 | 事件集ID。 |
| keywordType | String | 否 | Query参数 | 过滤字段类型:eventSourceName(事件源名称)/ eventSourceId(事件源ID)/ eventSourceAlias(事件源别称)。 |
| keyword | String | 否 | Query参数 | 过滤字段值,如:eb-xxxxxx。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| orderBy | String | 排序字段 |
| order | String | 排序方式 |
| pageNo | Integer | 页数 |
| pageSize | Integer | 每页数量 |
| totalCount | Integer | 总数 |
| result | List<Object> | 事件源列表 |
| result[].eventBusId | String | 事件集ID |
| result[].eventSourceId | String | 事件源ID |
| result[].eventSourceName | String | 事件源名称,命名在事件集下唯一 |
| result[].eventSourceAlias | String | 事件源别称 |
| result[].default | Boolean | 是否默认事件源 |
| result[].type | String | 事件源类型。取值:云产品 - cloud / 自定义 - custom |
请求示例
1GET /v1/event-bus/source/list?eventBusId=eb-0gdrbv5q&pageNo=1&pageSize=1 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "orderBy": "createTime",
3 "order": "desc",
4 "pageNo": 1,
5 "pageSize": 1,
6 "totalCount": 6,
7 "result": [
8 {
9 "eventBusId": "eb-0gdrbv5q",
10 "eventSourceId": "es-0gdrbv5q",
11 "eventSourceName": "BCC",
12 "eventSourceAlias": "云服务",
13 "default": true,
14 "type": "cloud"
15 }
16 ]
17}
2.2 创建事件源
接口描述
本接口用于创建事件源。
请求结构
1POST /v1/event-bus/source HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxx",
8 "eventSourceName": "BCC",
9 "eventSourceAlias": "云服务",
10}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 所属的事件集ID。 |
| eventSourceName | String | 是 | RequestBody参数 | 事件源名称,命名在事件集下唯一。 |
| eventSourceAlias | String | 否 | RequestBody参数 | 事件源别称。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| eventSourceId | String | 事件源ID |
请求示例
1POST /v1/event-bus/source HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxx",
8 "eventSourceName": "BCC",
9 "eventSourceAlias": "云服务",
10 "type": "cloud"
11}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventSourceId": "es-xxxxxxxx"
6 }
7}
2.3 更新事件源
接口描述
本接口用于更新事件源信息。
请求结构
1PUT /v1/event-bus/source HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxx",
8 "eventSourceId": "es-0gdrbv5q",
9 "eventSourceAlias": "云服务",
10 "eventSourceName": "BCC",
11}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 所属的事件集ID。 |
| eventSourceId | String | 是 | RequestBody参数 | 事件源ID。 |
| eventSourceAlias | String | 否 | RequestBody参数 | 事件源别称。 |
| eventSourceName | String | 否 | RequestBody参数 | 事件源名称,命名在事件集下唯一,支持修改。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| eventSourceId | String | 事件源ID |
请求示例
1PUT /v1/event-bus/source HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxx",
8 "eventSourceId": "es-0gdrbv5q",
9 "eventSourceAlias": "云服务",
10 "eventSourceName": "BCC",
11 "type": "Cloud"
12}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventSourceId": "es-xxxxxxxx"
6 }
7}
2.4 删除事件源
接口描述
本接口用于删除指定的事件源。
请求结构
1DELETE /v1/event-bus/source HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventSourceId": "es-0gdrbv5q"
8}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventSourceId | String | 是 | RequestBody参数 | 事件源ID。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| eventSourceId | String | 事件源ID |
请求示例
1DELETE /v1/event-bus/source HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventSourceId": "es-0gdrbv5q"
8}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventSourceId": "es-xxxxxxxx"
6 }
7}
3. 事件
3.1 获取事件列表
接口描述
本接口用于获取指定事件源下的事件列表,支持分页和条件过滤。
请求结构
1GET /v1/event-bus/event/list?eventSourceId={eventSourceId}&pageNo={pageNo}&pageSize={pageSize} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| orderBy | String | 否 | Query参数 | 排序字段,支持:modTime(修改时间)。示例值:modTime。 |
| order | String | 否 | Query参数 | 排序方式,可选值:ASC(升序)、DESC(降序)。示例值:DESC。 |
| pageNo | Integer | 是 | Query参数 | 页数。 |
| pageSize | Integer | 是 | Query参数 | 每页数量,默认值为10。 |
| eventSourceId | String | 是 | Query参数 | 事件源ID。 |
| eventLevel | String | 否 | Query参数 | 事件等级。可选值:通知 - NOTICE、预警 - MAJOR、警告 - WARNING、故障 - CRITICAL。 |
| keywordType | String | 否 | Query参数 | 过滤字段类型:eventType(事件名称)/ eventAlias(事件别称)。 |
| keyword | String | 否 | Query参数 | 过滤字段值,如:event-name。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| orderBy | String | 排序字段 |
| order | String | 排序方式 |
| pageNo | Integer | 页数 |
| pageSize | Integer | 每页数量 |
| totalCount | Integer | 总数 |
| result | List<Object> | 事件列表 |
| result[].eventSourceId | String | 事件源ID |
| result[].eventType | String | 事件名称 |
| result[].eventAlias | String | 事件别称 |
| result[].eventAliasEn | String | 事件别称(国际化) |
| result[].eventLevel | String | 事件级别 |
| result[].type | String | 事件类型。取值:云产品 - cloud / 自定义 - custom |
| result[].description | String | 事件描述 |
| result[].demo | String | 事件结构示例 |
请求示例
1GET /v1/event-bus/event/list?eventSourceId=es-xxxxx&pageNo=1&pageSize=1 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "orderBy": "createTime",
3 "order": "desc",
4 "pageNo": 1,
5 "pageSize": 1,
6 "totalCount": 6,
7 "result": [
8 {
9 "eventSourceId": "es-xxxxx",
10 "eventType": "RepairGpuEccErr",
11 "eventAlias": "GPU显存故障",
12 "eventAliasEn": "GpuEccErr",
13 "eventLevel": "CRITICAL",
14 "type": "cloud",
15 "description": "",
16 "demo": "{}"
17 }
18 ]
19}
3.2 查询事件
接口描述
本接口用于查询指定事件的详细信息。
请求结构
1GET /v1/event-bus/event?eventSourceId={eventSourceId}&eventType={eventType} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventSourceId | String | 是 | Query参数 | 事件源ID。 |
| eventType | String | 是 | Query参数 | 事件类型。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| eventSourceId | String | 事件源ID |
| eventType | String | 事件类型名称 |
| eventAlias | String | 事件别称 |
| eventAliasEn | String | 事件别称(国际化) |
| eventLevel | String | 事件级别 |
| accountId | String | 用户ID |
| type | String | 事件类型。取值:CLOUD / CUSTOM |
| eventBusId | String | 事件集ID |
| demo | String | 事件结构示例 |
| description | String | 事件描述 |
| showType | String | 显示类型 |
| default | Boolean | 是否默认事件 |
请求示例
1GET /v1/event-bus/event?eventSourceId=es-586b7ad2&eventType=custom-event-1 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "eventSourceId": "es-586b7ad2",
3 "eventType": "custom-event-1",
4 "eventAlias": "自定义事件-1",
5 "eventAliasEn": "GpuEccErr",
6 "eventLevel": "CRITICAL",
7 "accountId": "453bf9588c9e488f9ba2c984129090dc",
8 "type": "CUSTOM",
9 "eventBusId": "eb-7ba57ccb",
10 "demo": null,
11 "description": null,
12 "showType": "NORMAL",
13 "default": false
14}
3.3 创建事件
接口描述
本接口用于创建事件。如果事件名称相同会抛出异常。
请求结构
1POST /v1/event-bus/event HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventSourceId": "es-xxxxx",
8 "eventType": "RepairGpuEccErr",
9 "eventAlias": "GPU显存故障",
10 "eventAliasEn": "GpuEccErr",
11 "eventLevel": "CRITICAL",
12 "description": "",
13 "demo": "{}"
14}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventSourceId | String | 是 | RequestBody参数 | 事件源ID。 |
| eventType | String | 是 | RequestBody参数 | 事件名称。 |
| eventAlias | String | 否 | RequestBody参数 | 事件别称。 |
| eventAliasEn | String | 否 | RequestBody参数 | 事件别称(国际化)。 |
| eventLevel | String | 否 | RequestBody参数 | 事件级别。 |
| description | String | 否 | RequestBody参数 | 事件描述。 |
| demo | String | 否 | RequestBody参数 | 事件结构示例。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| eventSourceId | String | 事件源ID |
| eventType | String | 事件名称 |
| eventAlias | String | 事件别称 |
| eventAliasEn | String | 事件别称(国际化) |
| eventLevel | String | 事件级别 |
| default | Boolean | 是否默认事件 |
| type | String | 事件类型。取值:云产品 - cloud / 自定义 - custom |
请求示例
1POST /v1/event-bus/event HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventSourceId": "es-xxxxx",
8 "eventType": "RepairGpuEccErr",
9 "eventAlias": "GPU显存故障",
10 "eventAliasEn": "GpuEccErr",
11 "eventLevel": "CRITICAL",
12 "description": "",
13 "demo": "{}"
14}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventSourceId": "es-xxxxx",
6 "eventType": "RepairGpuEccErr",
7 "eventAlias": "GPU显存故障",
8 "eventAliasEn": "GpuEccErr",
9 "eventLevel": "CRITICAL",
10 "default": true,
11 "type": "cloud"
12 }
13}
3.4 批量创建事件
接口描述
本接口用于批量创建事件。返回为成功创建的事件,如果事件名称相同则跳过。
请求结构
1POST /v1/event-bus/event/batch HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "events": [
8 {
9 "eventSourceId": "es-xxxxx",
10 "eventType": "RepairGpuEccErr",
11 "eventAlias": "GPU显存故障",
12 "eventAliasEn": "GpuEccErr",
13 "eventLevel": "CRITICAL",
14 "description": "",
15 "demo": "{}"
16 }
17 ]
18}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| events | List<Object> | 是 | RequestBody参数 | 事件列表。 |
| events[].eventSourceId | String | 是 | RequestBody参数 | 事件源ID。 |
| events[].eventType | String | 是 | RequestBody参数 | 事件名称。 |
| events[].eventAlias | String | 否 | RequestBody参数 | 事件别称。 |
| events[].eventAliasEn | String | 否 | RequestBody参数 | 事件别称(国际化)。 |
| events[].eventLevel | String | 否 | RequestBody参数 | 事件级别。 |
| events[].description | String | 否 | RequestBody参数 | 事件描述。 |
| events[].demo | String | 否 | RequestBody参数 | 事件结构示例。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| eventSourceId | String | 事件源ID |
| eventType | String | 事件名称 |
| eventAlias | String | 事件别称 |
| eventAliasEn | String | 事件别称(国际化) |
| eventLevel | String | 事件级别 |
| default | Boolean | 是否默认事件 |
| type | String | 事件类型。取值:云产品 - cloud / 自定义 - custom |
| description | String | 事件描述 |
| demo | String | 事件结构示例 |
请求示例
1POST /v1/event-bus/event/batch HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "events": [
8 {
9 "eventSourceId": "es-xxxxx",
10 "eventType": "RepairGpuEccErr",
11 "eventAlias": "GPU显存故障",
12 "eventAliasEn": "GpuEccErr",
13 "eventLevel": "CRITICAL",
14 "description": "",
15 "demo": "{}"
16 }
17 ]
18}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventSourceId": "es-xxxxx",
6 "eventType": "RepairGpuEccErr",
7 "eventAlias": "GPU显存故障",
8 "eventAliasEn": "GpuEccErr",
9 "eventLevel": "CRITICAL",
10 "default": true,
11 "type": "cloud",
12 "description": "",
13 "demo": "{}"
14 }
15}
3.5 更新事件
接口描述
本接口用于更新事件信息。
注意事项
事件源ID和事件名称不可更改,如果需要更改,可以删除后重新创建。
请求结构
1PUT /v1/event-bus/event HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventSourceId": "es-xxxxx",
8 "eventType": "RepairGpuEccErr",
9 "eventAlias": "GPU显存故障",
10 "eventAliasEn": "GpuEccErr",
11 "eventLevel": "CRITICAL",
12 "description": "",
13 "demo": "{}"
14}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventSourceId | String | 是 | RequestBody参数 | 事件源ID。 |
| eventType | String | 是 | RequestBody参数 | 事件名称。 |
| eventAlias | String | 否 | RequestBody参数 | 事件别称。 |
| eventAliasEn | String | 否 | RequestBody参数 | 事件别称(国际化)。 |
| eventLevel | String | 否 | RequestBody参数 | 事件级别。 |
| description | String | 否 | RequestBody参数 | 事件描述。 |
| demo | String | 否 | RequestBody参数 | 事件结构示例。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| eventSourceId | String | 事件源ID |
| eventType | String | 事件名称 |
| eventAlias | String | 事件别称 |
| eventAliasEn | String | 事件别称(国际化) |
| eventLevel | String | 事件级别 |
| default | Boolean | 是否默认事件 |
| type | String | 事件类型。取值:云产品 - cloud / 自定义 - custom |
| description | String | 事件描述 |
| demo | String | 事件结构示例 |
请求示例
1PUT /v1/event-bus/event HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventSourceId": "es-xxxxx",
8 "eventType": "RepairGpuEccErr",
9 "eventAlias": "GPU显存故障",
10 "eventAliasEn": "GpuEccErr",
11 "eventLevel": "CRITICAL",
12 "description": "",
13 "demo": "{}"
14}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "eventSourceId": "es-xxxxx",
6 "eventType": "RepairGpuEccErr",
7 "eventAlias": "GPU显存故障",
8 "eventAliasEn": "GpuEccErr",
9 "eventLevel": "CRITICAL",
10 "default": true,
11 "type": "cloud",
12 "description": "",
13 "demo": "{}"
14 }
15}
3.6 批量删除事件
接口描述
本接口用于批量删除事件。
请求结构
1DELETE /v1/event-bus/event/batch HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "events": [
8 {
9 "eventSourceId": "es-xxxxx",
10 "eventType": "RepairGpuEccErr"
11 }
12 ]
13}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| events | List<Object> | 是 | RequestBody参数 | 事件列表。 |
| events[].eventSourceId | String | 是 | RequestBody参数 | 事件源ID。 |
| events[].eventType | String | 是 | RequestBody参数 | 事件名称。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| msg | String | 若失败,返回失败原因 |
| deleteEvents | List<Object> | 已删除的事件列表 |
| deleteEvents[].eventSourceId | String | 事件源ID |
| deleteEvents[].eventType | String | 事件名称 |
请求示例
1DELETE /v1/event-bus/event/batch HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "events": [
8 {
9 "eventSourceId": "es-xxxxx",
10 "eventType": "RepairGpuEccErr"
11 }
12 ]
13}
响应示例
1{
2 "success": true,
3 "msg": "",
4 "result": {
5 "deleteEvents": [
6 {
7 "eventSourceId": "es-xxxxx",
8 "eventType": "RepairGpuEccErr"
9 }
10 ]
11 }
12}
4. 事件接收
4.1 用户事件接收
接口描述
本接口用于用户自定义事件的接收。支持批量发送事件到指定的事件集。
请求结构
1POST /v1/event-bus/recv HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "events": [
8 {
9 "data": {
10 "info": "info"
11 },
12 "source": "App_DEMO",
13 "type": "DEMO_EVENT",
14 "id": "45ef4dewdwe1-7c35-447a-bd93-fab****",
15 "subject": "bce-bcc:xxx",
16 "time": "2020-11-19T21:04:41Z",
17 "region": "bj"
18 }
19 ],
20 "eventBusId": "eb-xxxxxx"
21}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 事件总线ID。 |
| events | List<Object> | 是 | RequestBody参数 | 事件列表。 |
| events[].source | String | 是 | RequestBody参数 | 事件源名称。 |
| events[].type | String | 是 | RequestBody参数 | 事件名称。 |
| events[].id | String | 否 | RequestBody参数 | 事件ID,非必填。默认会随机生成一个字符串。 |
| events[].data | Object | 否 | RequestBody参数 | 事件具体信息,非必填,可以用于规则匹配等。 |
| events[].subject | String | 否 | RequestBody参数 | 事件发生源,非必填。默认为空。 |
| events[].time | String | 否 | RequestBody参数 | 事件发生时间,非必填。默认为接受到该事件的时间。格式:yyyy-MM-dd'T'HH:mm:ssZ。 |
| events[].region | String | 否 | RequestBody参数 | 事件发生地区,非必填。 |
| events[].eventBusId | String | 否 | RequestBody参数 | 事件总线ID。 |
| events[].eventBusName | String | 否 | RequestBody参数 | 事件总线名称,非必填。 |
| events[].eventAlias | String | 否 | RequestBody参数 | 事件名称,非必填。 |
| events[].eventAliasEn | String | 否 | RequestBody参数 | 事件名称(英文),非必填。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1POST /v1/event-bus/recv HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "events": [
8 {
9 "data": {
10 "info": "系统出现异常",
11 "advice": "请联系管理员"
12 },
13 "id": "45ef4dewdwe1-7c35-447a-bd93-fab****",
14 "source": "source1",
15 "type": "DEMO_EVENT",
16 "subject": "qcs::dts:ap-guangzhou:appid12312/uid1250000000:xxx",
17 "time": "2023-01-01T00:00:00+0800",
18 "eventBusId": "bus1",
19 "eventBusName": "busName1",
20 "eventAlias": "eventAlias1",
21 "eventAliasEn": "eventAliasEn1",
22 "region": "region1"
23 }
24 ]
25}
5. 事件规则
事件目标参数格式(form)说明
| form | 是否需要 value | 是否需要 template | 路由结果说明 |
|---|---|---|---|
| ORIGINAL | 否 | 否 | 完整原始事件 |
| JSONPATH | 是 | 否 | 提取 JSONPath 指定字段 |
| CONSTANT | 是 | 否 | 固定常量值 |
| TEMPLATE | 是 | 是 | JSONPath + 模板格式化 |
| NULL | 否 | 否 | 发送空值(null 或 空字符串) |
5.1 创建事件规则
接口描述
本接口用于创建事件规则,包含事件模式匹配和事件投递目标的配置。
请求结构
1POST /v1/event-bus/rule HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "MyEventBus",
8 "description": "MNS的过滤规则",
9 "ruleName": "MNSRule",
10 "status": "ENABLE",
11 "filterPattern": "{\"source\": [{\"prefix\": \"acs.\"}]}",
12 "targets": [
13 {
14 "type": "http",
15 "retryStrategy": "RANDOM_BACKOFF",
16 "params": [
17 {
18 "value": "http://www.test.com",
19 "resourceKey": "url",
20 "form": "CONSTANT"
21 },
22 {
23 "value": "",
24 "resourceKey": "Body",
25 "form": "ORIGINAL"
26 },
27 {
28 "value": "PublicNetwork",
29 "resourceKey": "Network",
30 "form": "CONSTANT"
31 }
32 ]
33 }
34 ]
35}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 事件总线ID。 |
| ruleName | String | 是 | RequestBody参数 | 事件规则名称。 |
| description | String | 否 | RequestBody参数 | 事件规则描述。 |
| status | String | 否 | RequestBody参数 | 规则状态。取值:ENABLE(规则已启用,默认)、DISABLE(规则已禁用)。 |
| filterPattern | String | 否 | RequestBody参数 | 事件模式,JSON 格式。 |
| targets | List<Object> | 否 | RequestBody参数 | 事件投递目标列表。 |
| targets[].type | String | 是 | RequestBody参数 | 投递方式,包括 http、sms、email、kafka、CFC。 |
| targets[].retryStrategy | String | 否 | RequestBody参数 | 重试方式,枚举值。默认为 RANDOM_BACKOFF。取值:EXPONENTIAL_BACKOFF(指数衰退重试)、RANDOM_BACKOFF(退避重试)。 |
| targets[].params | List<Object> | 是 | RequestBody参数 | 事件目标的参数。 |
| targets[].params[].value | String | 否 | RequestBody参数 | 事件目标的值。 |
| targets[].params[].resourceKey | String | 是 | RequestBody参数 | 事件目标的资源参数。 |
| targets[].params[].form | String | 是 | RequestBody参数 | 事件目标参数的格式。取值:ORIGINAL、JSONPATH、CONSTANT、TEMPLATE、NULL。 |
| targets[].params[].template | String | 否 | RequestBody参数 | 模板格式化字符串,form 为 TEMPLATE 时需要。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1POST /v1/event-bus/rule HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "MyEventBus",
8 "description": "MNS的过滤规则",
9 "ruleName": "MNSRule",
10 "status": "ENABLE",
11 "filterPattern": "{\"source\": [{\"prefix\": \"acs.\"}],\"type\": [{\"prefix\":\"oss:ObjectReplication\"}],\"subject\":[{\"prefix\":\"acs:oss:cn-hangzhou:123456789098****:my-movie-bucket/\", \"suffix\":\".txt\"}]}",
12 "targets": [
13 {
14 "type": "http",
15 "retryStrategy": "RANDOM_BACKOFF",
16 "params": [
17 {
18 "value": "http://www.test.com",
19 "resourceKey": "url",
20 "form": "CONSTANT"
21 },
22 {
23 "value": "",
24 "resourceKey": "Body",
25 "form": "ORIGINAL"
26 },
27 {
28 "value": "PublicNetwork",
29 "resourceKey": "Network",
30 "form": "CONSTANT"
31 }
32 ]
33 },
34 ...
35 ]
36}
5.2 更新事件规则
接口描述
本接口用于更新事件规则信息。
请求结构
1PUT /v1/event-bus/rule HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxxx",
8 "eventBusId": "MyEventBus",
9 "description": "MNS的过滤规则",
10 "ruleName": "MNSRule",
11 "status": "ENABLE",
12 "filterPattern": "{\"source\": [{\"prefix\": \"acs.\"}]}"
13}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventRuleId | String | 是 | RequestBody参数 | 事件规则ID。 |
| eventBusId | String | 是 | RequestBody参数 | 事件总线ID。 |
| ruleName | String | 是 | RequestBody参数 | 事件规则名称。 |
| description | String | 否 | RequestBody参数 | 事件规则描述。 |
| status | String | 否 | RequestBody参数 | 规则状态。取值:ENABLE(规则已启用,默认)、DISABLE(规则已禁用)。 |
| filterPattern | String | 否 | RequestBody参数 | 事件模式,JSON 格式。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1PUT /v1/event-bus/rule HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxxx",
8 "eventBusId": "MyEventBus",
9 "description": "MNS的过滤规则",
10 "ruleName": "MNSRule",
11 "status": "ENABLE",
12 "filterPattern": "{\"source\": [{\"prefix\": \"acs.\"}],\"type\": [{\"prefix\":\"oss:ObjectReplication\"}],\"subject\":[{\"prefix\":\"acs:oss:cn-hangzhou:123456789098****:my-movie-bucket/\", \"suffix\":\".txt\"}]}"
13}
5.3 批量更新事件规则状态
接口描述
本接口用于批量更新事件规则的状态(启用/禁用)。
请求结构
1POST /v1/event-bus/rule/status HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxxx",
8 "eventRuleIds": ["er-xxxxx", "er-xxxxxx"],
9 "status": "ENABLE"
10}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 事件总线ID。 |
| eventRuleIds | List<String> | 是 | RequestBody参数 | 事件规则ID列表。 |
| status | String | 是 | RequestBody参数 | 规则状态。取值:ENABLE(启用)、DISABLE(禁用)。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1POST /v1/event-bus/rule/status HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxxx",
8 "eventRuleIds": ["er-xxxxx", "er-xxxxxx"],
9 "status": "ENABLE"
10}
5.4 批量删除事件规则
接口描述
本接口用于批量删除事件规则。
请求结构
1DELETE /v1/event-bus/rule HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxxx",
8 "eventRuleIds": ["er-xxxxx", "er-xxxxxx"]
9}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventBusId | String | 是 | RequestBody参数 | 事件总线ID。 |
| eventRuleIds | List<String> | 是 | RequestBody参数 | 事件规则ID列表。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1DELETE /v1/event-bus/rule HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventBusId": "eb-xxxxxx",
8 "eventRuleIds": ["er-xxxxx", "er-xxxxxx"]
9}
5.5 查询事件规则列表
接口描述
本接口用于查询事件规则列表,支持分页和条件过滤。
请求结构
1GET /v1/event-bus/rule/list?eventBusId={eventBusId}&pageNo={pageNo}&pageSize={pageSize} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| orderBy | String | 否 | Query参数 | 排序字段,支持:status(状态)、eventRuleName(名称)。示例值:eventRuleName。 |
| order | String | 否 | Query参数 | 排序方式,可选值:ASC(升序)、DESC(降序)。示例值:DESC。 |
| pageNo | Integer | 是 | Query参数 | 页数。 |
| pageSize | Integer | 是 | Query参数 | 每页数量,默认值为10。 |
| eventBusId | String | 是 | Query参数 | 事件集ID。 |
| status | String | 否 | Query参数 | 事件状态。取值:ENABLE 或 DISABLE。 |
| keywordType | String | 否 | Query参数 | 过滤字段类型:eventRuleName(事件规则名称)。 |
| keyword | String | 否 | Query参数 | 过滤字段值,如:rule。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| orderBy | String | 排序字段 |
| order | String | 排序方式 |
| pageNo | Integer | 页数 |
| pageSize | Integer | 每页数量 |
| totalCount | Integer | 总数 |
| result | List<Object> | 事件规则列表 |
| result[].eventRuleId | String | 事件规则ID |
| result[].eventBusId | String | 事件总线ID |
| result[].description | String | 事件规则描述 |
| result[].ruleName | String | 事件规则名称 |
| result[].status | String | 规则状态。取值:ENABLE / DISABLE |
| result[].filterPattern | String | 事件模式,JSON 格式 |
| result[].targets | List<Object> | 事件投递目标列表 |
| result[].targets[].targetId | String | 投递目标ID |
| result[].targets[].type | String | 投递方式 |
| result[].targets[].retryStrategy | String | 重试方式 |
| result[].targets[].params | List<Object> | 事件目标参数列表 |
请求示例
1GET /v1/event-bus/rule/list?eventBusId=eb-xxxxx&pageNo=1&pageSize=1 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "orderBy": "createTime",
3 "order": "desc",
4 "pageNo": 1,
5 "pageSize": 1,
6 "totalCount": 6,
7 "result": [
8 {
9 "eventRuleId": "er-xxxxx",
10 "eventBusId": "MyEventBus",
11 "description": "MNS的过滤规则",
12 "ruleName": "MNSRule",
13 "status": "ENABLE",
14 "filterPattern": "{\"source\": [{\"prefix\": \"acs.\"}]}",
15 "targets": [
16 {
17 "targetId": "et-xxxxx",
18 "type": "http",
19 "retryStrategy": "RANDOM_BACKOFF",
20 "params": [
21 {
22 "value": "http://www.test.com",
23 "resourceKey": "url",
24 "form": "CONSTANT"
25 },
26 {
27 "value": "",
28 "resourceKey": "Body",
29 "form": "ORIGINAL"
30 },
31 {
32 "value": "PublicNetwork",
33 "resourceKey": "Network",
34 "form": "CONSTANT"
35 }
36 ]
37 }
38 ]
39 }
40 ]
41}
5.6 查询事件规则详情
接口描述
本接口用于查询指定事件规则的详细信息。
请求结构
1GET /v1/event-bus/rule?eventRuleId={eventRuleId} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventRuleId | String | 是 | Query参数 | 事件规则ID。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| eventRuleId | String | 事件规则ID |
| eventBusId | String | 事件总线ID |
| description | String | 事件规则描述 |
| ruleName | String | 事件规则名称 |
| status | String | 规则状态。取值:ENABLE / DISABLE |
| filterPattern | String | 事件模式,JSON 格式 |
| targets | List<Object> | 事件投递目标列表 |
| targets[].targetId | String | 投递目标ID |
| targets[].type | String | 投递方式 |
| targets[].retryStrategy | String | 重试方式 |
| targets[].params | List<Object> | 事件目标参数列表 |
| targets[].params[].value | String | 事件目标的值 |
| targets[].params[].resourceKey | String | 事件目标的资源参数 |
| targets[].params[].form | String | 事件目标参数的格式 |
| targets[].params[].template | String | 模板格式化字符串 |
请求示例
1GET /v1/event-bus/rule?eventRuleId=er-xxxxx HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "eventRuleId": "er-xxxxx",
3 "eventBusId": "MyEventBus",
4 "description": "MNS的过滤规则",
5 "ruleName": "MNSRule",
6 "status": "ENABLE",
7 "filterPattern": "{\"source\": [{\"prefix\": \"acs.\"}]}",
8 "targets": [
9 {
10 "targetId": "et-xxxxx",
11 "type": "http",
12 "retryStrategy": "RANDOM_BACKOFF",
13 "params": [
14 {
15 "value": "http://www.test.com",
16 "resourceKey": "url",
17 "form": "CONSTANT"
18 },
19 {
20 "value": "",
21 "resourceKey": "Body",
22 "form": "ORIGINAL"
23 },
24 {
25 "value": "PublicNetwork",
26 "resourceKey": "Network",
27 "form": "CONSTANT"
28 }
29 ]
30 },
31 ...
32 ]
33}
5.7 批量新增规则目标
接口描述
本接口用于为指定事件规则批量新增投递目标。
请求结构
1POST /v1/event-bus/rule/target HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxx",
8 "targets": [
9 {
10 "type": "http",
11 "retryStrategy": "RANDOM_BACKOFF",
12 "params": [
13 {
14 "value": "http://www.test.com",
15 "resourceKey": "url",
16 "form": "CONSTANT"
17 },
18 {
19 "value": "",
20 "resourceKey": "Body",
21 "form": "ORIGINAL"
22 },
23 {
24 "value": "PublicNetwork",
25 "resourceKey": "Network",
26 "form": "CONSTANT"
27 }
28 ]
29 }
30 ]
31}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventRuleId | String | 是 | RequestBody参数 | 事件规则ID。 |
| targets | List<Object> | 是 | RequestBody参数 | 事件投递目标列表。 |
| targets[].type | String | 是 | RequestBody参数 | 投递方式,包括 http、sms、email、kafka。 |
| targets[].retryStrategy | String | 否 | RequestBody参数 | 重试方式,枚举值。默认为 RANDOM_BACKOFF。取值:EXPONENTIAL_BACKOFF(指数衰退重试)、RANDOM_BACKOFF(退避重试)。 |
| targets[].params | List<Object> | 是 | RequestBody参数 | 事件目标的参数。 |
| targets[].params[].value | String | 否 | RequestBody参数 | 事件目标的值。 |
| targets[].params[].resourceKey | String | 是 | RequestBody参数 | 事件目标的资源参数。 |
| targets[].params[].form | String | 是 | RequestBody参数 | 事件目标参数的格式。取值:ORIGINAL、JSONPATH、CONSTANT、TEMPLATE、NULL。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1POST /v1/event-bus/rule/target HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxx",
8 "targets": [
9 {
10 "type": "http",
11 "retryStrategy": "RANDOM_BACKOFF",
12 "params": [
13 {
14 "value": "http://www.test.com",
15 "resourceKey": "url",
16 "form": "CONSTANT"
17 },
18 {
19 "value": "",
20 "resourceKey": "Body",
21 "form": "ORIGINAL"
22 },
23 {
24 "value": "PublicNetwork",
25 "resourceKey": "Network",
26 "form": "CONSTANT"
27 }
28 ]
29 }
30 ]
31}
5.8 批量修改规则目标(支持增删改)
接口描述
本接口用于批量修改事件规则的投递目标,支持同时新增、修改和删除投递目标。
请求结构
1PUT /v1/event-bus/rule/target HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxx",
8 "addTargets": [],
9 "editTargets": [],
10 "delTargetIds": ["et-xxxxx", "et-xxxxxx"]
11}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventRuleId | String | 是 | RequestBody参数 | 事件规则ID。 |
| addTargets | List<Object> | 否 | RequestBody参数 | 新增的事件投递目标列表。 |
| addTargets[].type | String | 是 | RequestBody参数 | 投递方式,包括 http、sms、email、kafka。 |
| addTargets[].retryStrategy | String | 否 | RequestBody参数 | 重试方式,枚举值。默认为 RANDOM_BACKOFF。取值:EXPONENTIAL_BACKOFF(指数衰退重试)、RANDOM_BACKOFF(退避重试)。 |
| addTargets[].params | List<Object> | 是 | RequestBody参数 | 事件目标的参数。 |
| addTargets[].params[].value | String | 否 | RequestBody参数 | 事件目标的值。 |
| addTargets[].params[].resourceKey | String | 是 | RequestBody参数 | 事件目标的资源参数。 |
| addTargets[].params[].form | String | 是 | RequestBody参数 | 事件目标参数的格式。取值:ORIGINAL、JSONPATH、CONSTANT、TEMPLATE、NULL。 |
| editTargets | List<Object> | 否 | RequestBody参数 | 修改的事件投递目标列表。 |
| editTargets[].targetId | String | 是 | RequestBody参数 | 规则目标ID。 |
| editTargets[].type | String | 是 | RequestBody参数 | 投递方式,包括 http、sms、email、kafka。 |
| editTargets[].retryStrategy | String | 否 | RequestBody参数 | 重试方式,枚举值。默认为 RANDOM_BACKOFF。 |
| editTargets[].params | List<Object> | 是 | RequestBody参数 | 事件目标的参数。 |
| editTargets[].params[].value | String | 否 | RequestBody参数 | 事件目标的值。 |
| editTargets[].params[].resourceKey | String | 是 | RequestBody参数 | 事件目标的资源参数。 |
| editTargets[].params[].form | String | 是 | RequestBody参数 | 事件目标参数的格式。 |
| delTargetIds | List<String> | 否 | RequestBody参数 | 要删除的目标ID列表。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1PUT /v1/event-bus/rule/target HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxx",
8 "addTargets": [
9 {
10 "type": "http",
11 "retryStrategy": "RANDOM_BACKOFF",
12 "params": [
13 {
14 "value": "http://www.test.com",
15 "resourceKey": "url",
16 "form": "CONSTANT"
17 },
18 {
19 "value": "",
20 "resourceKey": "Body",
21 "form": "ORIGINAL"
22 },
23 {
24 "value": "PublicNetwork",
25 "resourceKey": "Network",
26 "form": "CONSTANT"
27 }
28 ]
29 }
30 ],
31 "editTargets": [
32 {
33 "targetId": "et-xxxxxx",
34 "type": "http",
35 "retryStrategy": "RANDOM_BACKOFF",
36 "params": [
37 {
38 "value": "http://www.test.com",
39 "resourceKey": "url",
40 "form": "CONSTANT"
41 },
42 {
43 "value": "",
44 "resourceKey": "Body",
45 "form": "ORIGINAL"
46 },
47 {
48 "value": "PublicNetwork",
49 "resourceKey": "Network",
50 "form": "CONSTANT"
51 }
52 ]
53 }
54 ],
55 "delTargetIds": ["et-xxxxx", "et-xxxxxx"]
56}
5.9 批量删除规则目标
接口描述
本接口用于批量删除事件规则的投递目标。
请求结构
1DELETE /v1/event-bus/rule/target HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxxxx",
8 "targetIds": ["et-xxxxx", "et-xxxxxx"]
9}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| eventRuleId | String | 是 | RequestBody参数 | 事件规则ID。 |
| targetIds | List<String> | 是 | RequestBody参数 | 要删除的目标ID列表。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1DELETE /v1/event-bus/rule/target HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "eventRuleId": "er-xxxxxx",
8 "targetIds": ["et-xxxxx", "et-xxxxxx"]
9}
5.10 判断是否匹配
接口描述
本接口用于判断事件是否匹配指定的事件模式。
请求结构
1POST /v1/event-bus/rule/match HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "event": "",
8 "eventPattern": ""
9}
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| event | String | 是 | RequestBody参数 | 事件 demo。 |
| eventPattern | String | 是 | RequestBody参数 | 事件模式。 |
响应头域
除公共头域外,无其它特殊头域。
请求示例
1POST /v1/event-bus/rule/match HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
4Content-Type: application/json
5
6{
7 "event": "{\"source\":\"acs.oss\"}",
8 "eventPattern": "{\"source\": [{\"prefix\": \"acs.\"}]}"
9}
6. 事件历史查询
6.1 事件追踪
接口描述
本接口用于查询事件推送的历史记录。
请求结构
1GET /v1/event-bus/historic?accountId={accountId}&eventBusId={eventBusId}&pageNo={pageNo}&pageSize={pageSize} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
|---|---|---|---|---|
| orderBy | String | 否 | Query参数 | 排序字段,支持:time、level、source、type。默认值:time。 |
| order | String | 否 | Query参数 | 排序方式,可选值:ASC(升序)、DESC(降序)。默认值:DESC。 |
| pageNo | Integer | 是 | Query参数 | 页数。 |
| pageSize | Integer | 是 | Query参数 | 每页数量,默认值为10。 |
| startTime | Timestamp | 否 | Query参数 | 查询起始时间,默认40天前。 |
| endTime | Timestamp | 否 | Query参数 | 查询结束时间。 |
| accountId | String | 是 | Query参数 | 用户ID。 |
| eventBusId | String | 是 | Query参数 | 事件集ID。 |
| Source | String | 否 | Query参数 | 事件源名称。 |
| eventType | String | 否 | Query参数 | 事件类型。 |
| eventTypeAlias | String | 否 | Query参数 | 事件类型别称,支持模糊匹配。 |
| eventId | String | 否 | Query参数 | 事件ID,当该值不为空时,优先级最高。 |
| level | String | 否 | Query参数 | 事件等级。可选值:通知 - NOTICE、预警 - MAJOR、警告 - WARNING、故障 - CRITICAL。 |
| region | String | 否 | Query参数 | 地域。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| events | List<Object> | 事件列表。注意:当查询无信息时,events 字段不会返回。 |
| events[].data | Object | 事件详细信息 |
| events[].eventId | String | 事件ID |
| events[].source | String | 事件源名称 |
| events[].eventSourceAlias | String | 事件源别称 |
| events[].specversion | String | CloudEvents 版本 |
| events[].type | String | 事件类型 |
| events[].typeAlias | String | 事件类型别称 |
| events[].datacontenttype | String | 数据内容类型 |
| events[].subject | String | 相关实例ID |
| events[].time | String | 事件时间 |
| events[].resourceType | String | 资源类型 |
| events[].level | String | 事件级别 |
| events[].accountId | String | 用户ID |
| events[].eventBusId | String | 事件集ID |
| events[].eventBusName | String | 事件集名称 |
| events[].region | String | 地域 |
| events[].recvTimestamp | String | 事件接收时间 |
| order | String | 排序方式 |
| orderBy | String | 排序字段 |
| pageNo | Integer | 页数 |
| pageSize | Integer | 每页数量 |
| totalCount | Integer | 总数 |
请求示例
1GET /v1/event-bus/historic?accountId=453bf9588c9e488f9ba2c984129090dc&eventBusId=eb-c7f7b60d&pageNo=1&pageSize=10 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "success": true,
3 "result": {
4 "events": [
5 {
6 "data": {
7 "String": "{\"info\": \"系统出现异常1539\", \"advice\": \"请联系管理员\"}",
8 "Valid": true
9 },
10 "eventId": "f06553e6-29dc-4dca-8a05-ff5e4293071f",
11 "source": "http",
12 "eventSourceAlias": "事件源别称",
13 "specversion": "1.0",
14 "type": "custom-event-1",
15 "typeAlias": "自定义事件-1",
16 "datacontenttype": "application/json",
17 "subject": "",
18 "time": "2024-06-18T08:48:27Z",
19 "resourceType": "",
20 "level": "CRITICAL",
21 "accountId": "453bf9588c9e488f9ba2c984129090dc",
22 "eventBusId": "eb-c7f7b60d",
23 "eventBusName": "custom-bus-2",
24 "region": "",
25 "recvTimestamp": "2024-06-18T08:48:27Z"
26 }
27 ],
28 "order": "DESC",
29 "orderBy": "time",
30 "pageNo": 1,
31 "pageSize": 10,
32 "totalCount": 5
33 }
34}
6.2 事件投递历史查询
接口描述
本接口用于查询事件投递目标的历史记录。
请求结构
1GET /v1/event-bus/historic/trigger?accountId={accountId}&eventBusId={eventBusId}&pageNo={pageNo}&pageSize={pageSize} HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
请求参数
| 参数名称 | 类型 | 是否必选 | 参数位置 | 描述 |
| ---- | ---- | ---- | ---- | ---- |
| orderBy | String | 否 | Query参数 | 排序字段,支持:status(状态)、source(事件源)、time(时间)、deliver_time(耗时时间)。默认值:time。 |
| order | String | 否 | Query参数 | 排序方式,可选值:ASC(升序)、DESC(降序)。默认值:DESC。 |
| pageNo | Integer | 是 | Query参数 | 页数。 |
| pageSize | Integer | 是 | Query参数 | 每页数量,默认值为10。 |
| startTime | Timestamp | 否 | Query参数 | 查询起始时间,默认40天前。 |
| endTime | Timestamp | 否 | Query参数 | 查询结束时间。 |
| accountId | String | 是 | Query参数 | 用户ID。 |
| eventBusId | String | 是 | Query参数 | 事件集ID。 |
| source | String | 否 | Query参数 | 事件源名称。 |
| eventType | String | 否 | Query参数 | 事件类型。 |
| eventTypeAlias | String | 否 | Query参数 | 事件类型别称,支持模糊匹配。 |
| eventRuleId | String | 否 | Query参数 | 事件规则ID。 |
| eventRuleName | String | 否 | Query参数 | 事件规则名称。 |
| eventId | String | 否 | Query参数 | 事件ID,当该值不为空时,优先级最高。 |
| level | String | 否 | Query参数 | 事件等级。可选值:通知 - NOTICE、预警 - MAJOR、警告 - WARNING、故障 - CRITICAL。 |
| status | String | 否 | Query参数 | 投递状态。取值:DELIVERED(已投递)、FAILED(投递失败)。 |
| region | String | 否 | Query参数 | 地域。 |
响应头域
除公共头域外,无其它特殊头域。
响应参数
| 参数名称 | 类型 | 描述 |
|---|---|---|
| success | Boolean | 是否成功 |
| eventTargets | List<Object> | 投递历史列表。注意:当查询无信息时,eventTargets 字段不会返回。 |
| eventTargets[].eventId | String | 事件ID |
| eventTargets[].source | String | 事件源名称 |
| eventTargets[].eventSourceAlias | String | 事件源别称 |
| eventTargets[].type | String | 事件类型 |
| eventTargets[].typeAlias | String | 事件类型别称 |
| eventTargets[].time | String | 事件时间 |
| eventTargets[].triggerTime | String | 触发时间 |
| eventTargets[].accountId | String | 用户ID |
| eventTargets[].eventBusId | String | 事件集ID |
| eventTargets[].eventBusName | String | 事件集名称 |
| eventTargets[].region | String | 地域 |
| eventTargets[].targetType | String | 投递目标类型 |
| eventTargets[].status | String | 投递状态 |
| eventTargets[].ruleId | String | 事件规则ID |
| eventTargets[].ruleName | String | 事件规则名称 |
| eventTargets[].deliverTime | Integer | 投递耗时(毫秒) |
| eventTargets[].failedReason | Object | 失败原因 |
| order | String | 排序方式 |
| orderBy | String | 排序字段 |
| pageNo | Integer | 页数 |
| pageSize | Integer | 每页数量 |
| totalCount | Integer | 总数 |
请求示例
1GET /v1/event-bus/historic/trigger?accountId=453bf9588c9e488f9ba2c984129090dc&eventBusId=eb-c7f7b60d&pageNo=1&pageSize=10 HTTP/1.1
2Host: <bcm-endpoint>
3Authorization: authorization string
响应示例
1{
2 "success": true,
3 "result": {
4 "eventTargets": [
5 {
6 "eventId": "563deaef-e27d-4b51-b71c-6335a90cdeaf",
7 "source": "http",
8 "eventSourceAlias": "事件源别称",
9 "type": "custom-event-1",
10 "typeAlias": "自定义事件-1",
11 "time": "2024-06-18T11:47:20Z",
12 "triggerTime": "2024-06-18T11:47:20Z",
13 "accountId": "453bf9588c9e488f9ba2c984129090dc",
14 "eventBusId": "eb-c7f7b60d",
15 "eventBusName": "custom-bus-2",
16 "region": "",
17 "targetType": "KAFKA",
18 "status": "FAILED",
19 "ruleId": "er-6e1bf186",
20 "ruleName": "bcc-rule",
21 "deliverTime": 1502,
22 "failedReason": {
23 "String": "BCM generate authorization failed with ",
24 "Valid": true~~~~
25 }
26 }
27 ],
28 "order": "DESC",
29 "orderBy": "time",
30 "pageNo": 1,
31 "pageSize": 10,
32 "totalCount": 7
33 }
34}
7. 事件目标通知渠道
支持的通知渠道
事件总线支持以下通知渠道类型(TargetType 枚举值):
| 渠道类型 | 枚举值 | 描述 |
|---|---|---|
| HTTP 回调 | HTTP |
通过 HTTP 请求将事件投递到指定 URL |
| 短信通知 | SMS |
通过短信将事件通知到指定人员或通知组 |
| 邮件通知 | EMAIL |
通过邮件将事件通知到指定人员或通知组 |
| Kafka 消息队列 | KAFKA |
将事件投递到指定的 Kafka Topic |
各渠道参数说明
事件目标(Target)的通用结构如下:
| 参数名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| targetId | String | 是 | 事件目标的 ID |
| type | TargetType | 是 | 投递方式,见上方枚举值 |
| params | List<TargetParam> | 是 | 事件目标的参数列表,不同渠道所需参数不同,见下方各渠道详情 |
| retryStrategy | RetryStrategy | 否 | 重试策略。可选值:EXPONENTIAL_BACKOFF(指数退避)、RANDOM_BACKOFF(随机退避,默认值) |
其中每个 TargetParam 的结构为:
| 参数名称 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
| resourceKey | String | 是 | 参数名称 |
| form | TargetParamType | 是 | 参数格式。可选值:ORIGINAL(完整事件,无需定义 value 和 template)、JSONPATH(部分事件,需定义 value)、CONSTANT(常量,需定义 value)、TEMPLATE(模板,需定义 value 和 template)、NULL(空值) |
| value | String | 条件必选 | 参数值。当 form 为 JSONPATH、CONSTANT、TEMPLATE 时必填 |
| template | String | 条件必选 | 参数模板。当 form 为 TEMPLATE 时必填,格式示例:The value of ${key} is ${value}! |
HTTP 渠道参数
| resourceKey | 是否必选 | 描述 |
|---|---|---|
url |
是 | 回调地址,格式为 http://host:port |
method |
是 | HTTP 请求方法,如 POST、GET |
network |
是 | 网络类型。可选值:PublicNetwork(公网)、PrivateNetwork(私有网络) |
vpcId |
条件必选 | VPC ID。当 network 为 PrivateNetwork 时必填 |
vpcRegion |
条件必选 | VPC 所在地域。当 network 为 PrivateNetwork 时必填 |
body |
否 | HTTP 请求体 |
SMS 渠道参数
| resourceKey | 是否必选 | 描述 |
|---|---|---|
notifyId |
是 | 通知接收者 ID 列表,JSON 数组格式,如 ["party-123"],不能为空或 "[]" |
notifyType |
是 | 通知类型。可选值:notifyParty(通知人员)、notifyGroup(通知组) |
content |
是 | 短信内容 |
EMAIL 渠道参数
| resourceKey | 是否必选 | 描述 |
|---|---|---|
notifyId |
是 | 通知接收者 ID 列表,JSON 数组格式,如 ["group-456"],不能为空或 "[]" |
notifyType |
是 | 通知类型。可选值:notifyParty(通知人员)、notifyGroup(通知组) |
subject |
是 | 邮件主题 |
content |
是 | 邮件正文 |
KAFKA 渠道参数
| resourceKey | 是否必选 | 描述 |
|---|---|---|
instanceId |
是 | Kafka 实例 ID |
region |
是 | 地域,如 bj |
topic |
是 | 目标 Kafka Topic 名称 |
value |
是 | 消息内容 |
key |
是 | 消息 Key。可将 form 设置为 NULL 表示不指定 Key |
acks |
是 | Kafka 应答配置,如 "1" |
