CloudEvents (cloudevents.io) 是一种以 通用方式描述事件数据的规范。该规范属于 Cloud Native Computing Foundation (CNCF),并由 CNCF 的无服务器工作组整理。
Eventarc 通过 HTTP 请求以 CloudEvents 格式将事件传递给事件接收器。目的地目标(例如 Workflows 服务)将事件转换为 JSON 对象(遵循 CloudEvents 规范),并将事件作为工作流运行时参数传递给工作流执行。
JSON 载荷格式
目标服务接收来自事件路由器的事件,并使用以下 CloudEvents 属性将事件格式设置为 CloudEvents 1.0.1 版 JSON 事件格式:
| 属性 | 说明 | 示例 |
|---|---|---|
| 数据 | 事件数据的载荷。 | { "subscription": "projects/my-project/subscriptions/my-sub", "message": { "attributes": { "attr1":"attr1-value" }, "data": "aGVsbG8gd29ybGQ=", "messageId": "2070443601311540", "publishTime":"2021-02-26T19:13:55.749Z" } } |
| 数据类型 | 已传递的数据类型 | application/json |
| id | 事件的唯一标识符 | 2070443601311540 |
| 来源 | 事件的来源 | //pubsub.googleapis.com/projects/my-project/topics/my-topic |
| specversion | 此事件使用的 CloudEvents 规范版本 | 1.0 |
| type | 事件数据的类型 | google.cloud.pubsub.topic.v1.messagePublished |
| time | 事件生成时间,采用 RFC 3339 格式(可选) | 2020-12-20T13:37:33.647Z |
根据事件类型,载荷格式如下:
Cloud Audit Logs
运行时参数是详细说明 Cloud Audit Logs 事件的 JSON 对象。在本文档中,请参阅常见事件示例。
在 JSON 对象中,您可以找到 resourceName、serviceName 和 methodName 值。如需了解详情,请参阅确定 Cloud Audit Logs 的事件过滤条件。
google.cloud.audit.log.v1.written 类型的事件具有以下格式:
{ "data":{ EVENT_DATA }, "datacontenttype": "application/json; charset=utf-8", "id": "MESSAGE_ID", "source": "//cloudaudit.googleapis.com/projects/PROJECT_ID/logs/data_access", "specversion": "1.0", "type": "google.cloud.audit.log.v1.written", "time": "EVENT_GENERATION_TIME", "dataschema": "https://googleapis.github.io/google-cloudevents/jsonschema/google/events/cloud/audit/v1/LogEntryData.json", "methodName": "jobservice.jobcompleted", "resourceName": "projects/my-project/jobs/bqjob_r3ac45813612fa2d6_0000017d591922c9_1", "serviceName": "bigquery.googleapis.com", "subject": "bigquery.googleapis.com/projects/my-project/jobs/bqjob_r3ac45813612fa2d6_0000017d591922c9_1" }
EVENT_DATA:JSON 格式的已解码消息内容。如需了解详情,请参阅本文档中的常见事件部分。MESSAGE_ID、EVENT_GENERATION_TIME:系统生成。PROJECT_ID:您的 Google Cloud 项目 ID。dataschema、methodName、resourceName、serviceName、subject:特定于事件类型的属性。
Cloud Storage
运行时参数是对 Cloud Storage 的更改。在 data 字段中,您可以找到 Cloud Storage 存储桶中的更改。在本文档中,请参阅常见事件示例。
google.cloud.storage.object.v1.finalized 类型的事件具有以下格式:
{ "data":{ EVENT_DATA }, "datacontenttype": "application/json", "id": "MESSAGE_ID", "source": "//storage.googleapis.com/projects/_/buckets/BUCKET_NAME", "specversion": "1.0", "type": "google.cloud.storage.object.v1.finalized", "time": "EVENT_GENERATION_TIME", "subject": "objects/my-file.txt" }
EVENT_DATA:JSON 格式的已解码消息内容。如需了解详情,请参阅本文档中的常见事件部分。MESSAGE_ID、EVENT_GENERATION_TIME、:系统生成。BUCKET_NAME:要更新的 Cloud Storage 存储桶的名称。subject:特定于事件类型的属性。
Pub/Sub
运行时参数是 Pub/Sub 推送消息。在 data 字段中,您可以找到以 Base64 编码的字符串形式的消息。在本文档中,请参阅常见事件示例。
google.cloud.pubsub.topic.v1.messagePublished 类型的事件具有以下格式:
{ "data":{ EVENT_DATA }, "datacontenttype": "application/json; charset=utf-8", "id": "MESSAGE_ID", "source"