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 diselenggarakan oleh Serverless Working Group CNCF.

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

Format payload JSON

Layanan tujuan menerima peristiwa dari router 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 peristiwa 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 peristiwa, format payload adalah sebagai berikut:

Cloud Audit Logs

Argumen runtime adalah objek JSON yang menjelaskan 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, dalam dokumen ini, lihat Peristiwa umum.
  • MESSAGE_ID, EVENT_GENERATION_TIME: dibuat sistem.
  • PROJECT_ID: Google Cloud Project ID Anda.
  • dataschema, methodName, resourceName, serviceName, subject: atribut khusus untuk jenis peristiwa.

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, dalam dokumen ini, lihat Peristiwa umum.
  • MESSAGE_ID, EVENT_GENERATION_TIME: dibuat 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, dalam dokumen ini, lihat Peristiwa umum.
  • MESSAGE_ID, EVENT_GENERATION_TIME: dibuat sistem.
  • TOPIC_NAME: nama topik Pub/Sub tempat peristiwa dipublikasikan.

Repositori open source

Struktur isi HTTP untuk semua peristiwa tersedia di repositori GitHub CloudEvents.

Repositori ini berisi hal berikut untuk membantu Anda memahami dan menggunakan data CloudEvents dalam bahasa pemrograman:

  • Google Protocol Buffers untuk payload data CloudEvents
  • Skema JSON yang dihasilkan
  • Katalog skema JSON publik

Link ke library klien juga disertakan.

Peristiwa umum

Buffer Protokol (atau protobuf) mewakili data dalam peristiwa yang dihasilkan oleh Eventarc. Protocol Buffers untuk CloudEvents disediakan sebagai skema yang dapat dibaca mesin, sehingga library jenis data dapat dibuat dan mempermudah penggunaan peristiwa.

Ada dua pesan protobuf yang relevan untuk jenis CloudEvent tertentu:

  • Pesan envelope yang mewakili CloudEvent lengkap, termasuk atribut ekstensi apa pun; misalnya, AuditLogWrittenEvent.
  • Pesan data; misalnya, LogEntryData atau StorageObjectData.
Banyak jenis CloudEvent yang dapat menggunakan pesan data yang sama. Misalnya, setiap peristiwa yang terkait dengan objek Cloud Storage menggunakan StorageObjectData sebagai pesan data. Setiap pesan amplop menentukan jenis CloudEvent yang terkait dengannya melalui anotasi proto. Untuk mengetahui informasi selengkapnya, lihat Hubungan antara pesan protobuf dan jenis CloudEvent.

Tabel berikut menjelaskan komponen beberapa peristiwa umum:

Cloud Audit Logs

File protogoogle/events/cloud/audit/v1/events.proto
google/events/cloud/audit/v1/data.proto
Pesan amplopgoogle.events.cloud.audit.v1.AuditLogWrittenEvent
Pesan datagoogle.events.cloud.audit.v1.LogEntryData
Jenis peristiwa
(saat entri log audit ditulis)
google.cloud.audit.log.v1.written
Ekstensi peristiwa
  • serviceName
  • methodName
  • resourceName
Lihat daftar jenis peristiwa yang menggunakan Cloud Audit Logs.
Contoh Log audit Pub/Sub
Log audit BigQuery
Informasi selengkapnya Membuat pemicu Eventarc untuk peristiwa Cloud Audit Logs
Menentukan filter peristiwa untuk Cloud Audit Logs
Google Cloud layanan dengan log audit

Cloud Storage

File proto google/events/cloud/storage/v1/events.proto
google/events/cloud/storage/v1/data.proto
Pesan amplopgoogle.events.cloud.storage.v1.ObjectFinalizedEvent
google.events.cloud.storage.v1.ObjectArchivedEvent
google.events.cloud.storage.v1.ObjectDeletedEvent
google.events.cloud.storage.v1.ObjectMetadataUpdatedEvent
Pesan datagoogle.events.cloud.storage.v1.StorageObjectData
Resource Objects
Jenis peristiwa
Lihat daftar jenis peristiwa langsung.
Contoh Sederhana
Kompleks
Informasi selengkapnya Membuat pemicu Eventarc untuk peristiwa Cloud Storage
Menerima peristiwa dari Cloud Storage di layanan Cloud Run

Firestore

File proto google/events/cloud/firestore/v1/events.proto
google/events/cloud/firestore/v1/data.proto
Pesan amplopgoogle.events.cloud.firestore.v1.DocumentCreatedEvent
google.events.cloud.firestore.v1.DocumentUpdatedEvent
google.events.cloud.firestore.v1.DocumentDeletedEvent
google.events.cloud.firestore.v1.DocumentWrittenEvent
Pesan datagoogle.events.cloud.firestore.v1.DocumentEventData
Resource Document
Jenis peristiwa Lihat daftar jenis peristiwa langsung.
Contoh Sederhana
Kompleks
Informasi selengkapnya Membuat pemicu Eventarc untuk peristiwa Firestore
Membuat arsitektur berbasis peristiwa dengan Eventarc dan Firestore
Memperluas dengan fungsi Cloud Run untuk menangani peristiwa yang dipicu oleh perubahan di Firestore

Pub/Sub

File proto google/events/cloud/pubsub/v1/events.proto
google/events/cloud/pubsub/v1/data.proto
Pesan amplopgoogle.events.cloud.pubsub.v1.MessagePublishedEvent
Pesan datagoogle.events.cloud.pubsub.v1.MessagePublishedData
Resource PubsubMessage
Jenis peristiwa
(saat pesan Pub/Sub dipublikasikan)
google.cloud.pubsub.topic.v1.messagePublished
Contoh Teks
Informasi selengkapnya Menerima peristiwa di layanan Cloud Run menggunakan pesan Pub/Sub
Memicu alur kerja menggunakan pesan Pub/Sub