最近更新时间:2022-05-06 16:51:27
事件源(这里指的是KS3)发布事件到KCF需要按照CloudEvents规范。关于CloudEvents规范的更多信息,请参见CloudEvents 1.0。
以下是事件源发布到云函数KCF的示例事件。
{
"id": "45ef4dewdwe1-7c35-447a-bd93-fab****",
"source": "kcs:ks3",
"type": "ks3:ObjectCreated:PutObject",
"specversion": "1.0",
"datacontenttype": "application/json",
"subject": "/cc",
"extensions": {
"region": "BEIJING",
"eventversion": "1.0",
"userid": "73400852",
"accountid": "73404680"
},
"data": {
"request": {
"sourceIPAddress": "127.0.0.1"
},
"response": {
"requestId": "daab11b695ea4c4ea7a1a71ce36d1100"
},
"ks3": {
"bucket": {
"name": "kcf-pj",
"ownerid": "73404680"
},
"object": {
"internalurl": "evt-jinyw.ks3-cn-beijing-internal.ksyuncs.com/ssssss.jpg",
"etag": "etag-xxxxxxx",
"objectsize": "1024",
"url": "evt-jinyw.ks3-cn-beijing.ksyuncs.com/ssssss.jpg",
"key": "ssssss.jpg"
}
}
}
}
事件函数中涉及的CloudEvents参数说明如下所示:
参数 | 类型 | 是否必选 | 示例值 | 说明 |
---|---|---|---|---|
id | String | 是 | 45ef4dewdwe1-7c35-447a-bd93-fab**** | 事件ID。标识事件的唯一值。事件通过规则路由到目标,可根据id跟踪事件。 |
source | String | 是 | kcs:ks3 | 事件源。提供事件的服务 |
type | String | 是 | ks3:ObjectCreated:PutObject | 事件类型。描述事件源相关的事件类型。 |
datacontenttype | String | 是 | application/json | 参数data的内容形式 |
specversion | String | 是 | 1.0 | CloudEvents协议版本。 |
subject | String | 是 | /cc | 事件主题 |
extensions | Struct | 否 | 见表格下方extensions结构体 | 扩展属性,用于存放账号、地域等公共属性。 |
data | Struct | 是 | 见表格下方data结构体 | 事件内容。JSON对象,内容由发起事件的服务决定。CloudEvents可能包含事件发生时由事件生产者给定的上下文,data中封装了这些信息。 |
extensions结构体
{
"region": "BEIJING",
"eventversion": "1.0",
"accountid": "7320"
}
data结构体
{
"request": {
"sourceIPAddress": "127.0.0.1"
},
"response": {
"requestId": "daab11b695ea4c4ea7a1a71ce36d1100"
},
"ks3": {
"bucket": {
"name": "kcf",
"ownerid": "7340"
},
"object": {
"internalurl": "evt.ks3-cn-beijing-internal.ksyuncs.com/ssssss.jpg",
"etag": "etag-xxxxxxx",
"objectsize": "1024",
"url": "evt.ks3-cn-beijing.ksyuncs.com/ssssss.jpg",
"key": "ssssss.jpg"
}
}
}
import lombok.Data;
@Data
public class Ks3CloudEventData {
RequestData request;
ResponseData response;
Ks3Data ks3;
}
@Data
public class Ks3Data {
Bucket bucket;
DataObject object;
}
@Data
public class Bucket {
String name;
String ownerid;
}
@Data
public class DataObject {
String internalurl;
String etag;
String objectsize;
String url;
String key;
}
@Data
public class RequestData {
String sourceIPAddress;
}
@Data
public class ResponseData {
String requestId;
}
纯净模式
鼠标选中内容,快速反馈问题