事件是状态变化的数据记录。本文介绍事件总线EventBridge的事件参数详情。
事件源发布事件到事件总线EventBridge需要按照CloudEvents规范。关于CloudEvents规范的更多信息,请参见CloudEvents 1.0。
以下是事件源发布到事件总线EventBridge的示例事件。
{
"data":{
"meetingName":"swqd",
"groupId":"456",
"action":"camera_off",
"time":1590592527490,
"userId":"199525",
"meetingUUID":"hz-20864c8f-b10d-45cd-9935-884bca1b****"
},
"id":"45ef4dewdwe1-7c35-447a-bd93-fab****",
"source":"acs:aliyuncvc",
"specversion":"1.0",
"subject":"acs.aliyuncvc:cn-hangzhou:{AccountId}:215672",
"time":"2020-11-19T21:04:41+08:00",
"type":"aliyuncvc:MeetingEvent:MemberOperate",
"aliyunaccountid":"123456789098****",
"aliyunpublishtime":"2020-11-19T21:04:42.179PRC",
"aliyuneventbusname":"default",
"aliyunregionid":"cn-hangzhou",
"aliyunpublishaddr":"172.25.XX.XX"
}
事件中涉及的参数如下所示。
参数 | 类型 | 是否必选 | 示例值 | 说明 |
id | String | 是 | 45ef4dewdwe1-7c35-447a-bd93-fab**** | 事件ID。标识事件的唯一值。发送端必须确保source+id是唯一的,如果由于网络等原因事件被重新发送,可能会产生两个相同id的事件。接收端会认为具有相同source和id的事件是重复的。事件通过规则路由到目标、事件被处理时,需要根据id跟踪事件。 |
source | String | 是 | acs:aliyuncvc | 事件源。提供事件的服务。标识事件发生的内容。一般会包含事件源的类型,发布事件的机制或生产事件的过程。发送端必须确保每个事件的source+id是唯一的。 |
specversion | String | 是 | 1.0 | CloudEvents协议版本。 |
type | String | 是 | aliyuncvc:MeetingEvent:MemberOperate | 事件类型。描述事件源相关的事件类型。该参数用于路由、事件查询和策略执行等。格式由生产者定义且包含版本等信息。 |
datacontenttype | String | 否 | application/json;charset=utf-8 | 参数data的内容形式。datacontenttype只支持application/json格式。 |
dataschema | URI | 否 | 无 | 参数data遵循的模式。 |
subject | String | 否 | acs.aliyuncvc:cn-hangzhou:{AccountId}:215672 | 事件主体。JSON数据包含标识事件中涉及的资源的ARN。在发布订阅模式中,订阅者通常订阅source发出的事件。当source中包含子结构时,只使用source无法对具体事件进行清晰的定义。subject参数在订阅过滤场景中对data无法解释的内容提供说明。 |
time | Timestamp | 否 | 2020-11-19T21:04:41+08:00 | 事件产生的时间。如果无法确定事件发生的时间,CloudEvents生产者可以把time设置为其他时间(例如当前时间),但是同一个source的所有生产者设置的值必须是一致的。 |
data | Struct | 否 |
| 事件内容。JSON对象,内容由发起事件的服务决定。CloudEvents可能包含事件发生时由事件生产者给定的上下文,data中封装了这些信息。 |
aliyunaccountid | String | 否 | 123456789098**** | 阿里云账号ID。该参数是事件从事件源发布到事件总线EventBridge后新增的,不是CloudEvents规范中的参数。 |
aliyunpublishtime | Timestamp | 否 | 2020-11-19T21:04:42.179PRC | 接收事件的时间。该参数是事件从事件源发布到事件总线EventBridge后新增的,不是CloudEvents规范中的参数。 |
aliyuneventbusname | String | 是 | default | 接收事件的事件总线名称。该参数是事件从事件源发布到事件总线EventBridge后新增的,不是CloudEvents规范中的参数。 |
aliyunregionid | String | 否 | cn-hangzhou | 接收事件的地域。该参数是事件从事件源发布到事件总线EventBridge后新增的,不是CloudEvents规范中的参数。 |
aliyunpublishaddr | String | 否 | 172.25.XX.XX | 接收事件的服务器地址。该参数是事件从事件源发布到事件总线EventBridge后新增的,不是CloudEvents规范中的参数。 |
事件源发布到事件总线EventBridge的事件有以下两种类型:
阿里云服务事件
阿里云服务作为事件源自动接入事件总线EventBridge。事件总线EventBridge支持的所有阿里云服务事件类型,请参见阿里云服务事件。
自定义应用事件
您自己的应用作为事件源接入时,需要配置自己的应用使用SDK接入事件总线EventBridge。