CloudEvents - Format peristiwa JSON

CloudEvents (cloudevents.io) adalah spesifikasi untuk mendeskripsikan data peristiwa dengan cara yang umum. Spesifikasi ini berada di bawah Cloud Native Computing Foundation (CNCF) dan diatur oleh Serverless Working Group CNCF.

Eventarc mengirimkan peristiwa ke penerima peristiwa dalam format CloudEvents melalui permintaan HTTP. Target tujuan—misalnya, layanan Workflows—mengonversi peristiwa menjadi objek JSON (mengikuti spesifikasi CloudEvents) dan meneruskan peristiwa ke eksekusi alur kerja sebagai argumen runtime alur kerja.

Format payload JSON

Layanan tujuan menerima peristiwa dari perute peristiwa dan memformat peristiwa ke Format Peristiwa JSON untuk CloudEvents versi 1.0.1 dengan atribut CloudEvents berikut:

Atribut Deskripsi Contoh
data Payload data peristiwa.
{
  "subscription": "projects/my-project/subscriptions/my-sub",
  "message": {
    "attributes": {
      "attr1":"attr1-value"
    },
    "data": "aGVsbG8gd29ybGQ=",
    "messageId": "2070443601311540",
    "publishTime":"2021-02-26T19:13:55.749Z"
  }
}
datacontenttype Jenis data yang telah diteruskan application/json
id ID unik untuk acara 2070443601311540
sumber Sumber peristiwa //pubsub.googleapis.com/projects/my-project/topics/my-topic
specversion Versi spesifikasi CloudEvents yang digunakan untuk peristiwa ini 1.0
jenis Jenis data peristiwa google.cloud.pubsub.topic.v1.messagePublished
waktu Waktu pembuatan peristiwa, dalam format RFC 3339 (opsional) 2020-12-20T13:37:33.647Z

Bergantung pada jenis acara, format payload adalah sebagai berikut:

Cloud Audit Logs

Argumen runtime adalah objek JSON yang memerinci peristiwa Cloud Audit Logs. Dalam dokumen ini, lihat Contoh peristiwa umum. Dalam objek JSON, Anda dapat menemukan nilai resourceName, serviceName, dan methodName. Untuk mengetahui informasi selengkapnya, lihat Menentukan filter peristiwa untuk Cloud Audit Logs.

Peristiwa jenis google.cloud.audit.log.v1.written memiliki format berikut:

{
  "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: konten pesan yang didekode dalam format JSON. Untuk mengetahui informasi selengkapnya, lihat Peristiwa umum dalam dokumen ini.
  • MESSAGE_ID, EVENT_GENERATION_TIME: dibuat oleh sistem.
  • PROJECT_ID: Google Cloud Project ID Anda.
  • dataschema, methodName, resourceName, serviceName, subject: atribut khusus untuk jenis acara.

Cloud Storage

Argumen runtime adalah perubahan pada Cloud Storage. Di kolom data, Anda dapat menemukan perubahan di bucket Cloud Storage. Dalam dokumen ini, lihat Contoh peristiwa umum.

Peristiwa jenis google.cloud.storage.object.v1.finalized memiliki format berikut:

{
  "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: konten pesan yang didekode dalam format JSON. Untuk mengetahui informasi selengkapnya, lihat Peristiwa umum dalam dokumen ini.
  • MESSAGE_ID, EVENT_GENERATION_TIME: dibuat oleh sistem.
  • BUCKET_NAME: nama bucket Cloud Storage yang diperbarui.
  • subject: atribut khusus untuk jenis peristiwa.

Pub/Sub

Argumen runtime adalah pesan push Pub/Sub. Di kolom data, Anda dapat menemukan pesan sebagai string berenkode Base64. Dalam dokumen ini, lihat Contoh peristiwa umum.

Peristiwa jenis google.cloud.pubsub.topic.v1.messagePublished memiliki format berikut:

{
  "data":{ EVENT_DATA },
  "datacontenttype": "application/json; charset=utf-8",
  "id": "MESSAGE_ID",
  "source": "//pubsub.googleapis.com/TOPIC_NAME",
  "specversion": "1.0",
  "type": "google.cloud.pubsub.topic.v1.messagePublished",
  "time": "EVENT_GENERATION_TIME"
}
  • EVENT_DATA: konten pesan yang didekode dalam format JSON. Untuk mengetahui informasi selengkapnya, lihat Peristiwa umum dalam dokumen ini.