CloudEvents - JSON 事件格式

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 对象中,您可以找到 resourceNameserviceNamemethodName 值。如需了解详情,请参阅确定 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_IDEVENT_GENERATION_TIME:系统生成。
  • PROJECT_ID:您的 Google Cloud 项目 ID。
  • dataschemamethodNameresourceNameserviceNamesubject:特定于事件类型的属性。

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_IDEVENT_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"