Format CloudEvents - Pengikatan protokol HTTP

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.

Header permintaan HTTP

Layanan target menerima peristiwa dari router peristiwa sebagai permintaan POST HTTP yang diformat ke spesifikasi pengikatan protokol HTTP CloudEvents versi 1.0. Setiap permintaan HTTP berisi header dan isi khusus peristiwa, serta dikirim ke jalur URL root (/) layanan.

Selain header HTTP lainnya, semua peristiwa memiliki header HTTP CloudEvents berikut:

Header Deskripsi Contoh
ce-id ID unik untuk peristiwa 1096434104173400
ce-source Mengidentifikasi sumber peristiwa //pubsub.googleapis.com/projects/my-project/topics/my-topic
ce-specversion Versi spesifikasi CloudEvents yang digunakan untuk peristiwa ini 1.0
ce-type Jenis data peristiwa google.cloud.pubsub.topic.v1.messagePublished
ce-time Waktu pembuatan peristiwa, dalam format RFC 3339 (opsional) 2020-12-20T13:37:33.647Z

Format payload HTTP

Cloud Audit Logs

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

Header

ce-specversion: 1.0
ce-type: google.cloud.audit.log.v1.written
ce-source: //SERVICE_NAME/projects/PROJECT_ID
ce-id: MESSAGE_ID
ce-time: PUBLISH_TIME
Content-Type: application/json; charset=utf-8
Content-Length: CONTENT_LENGTH
  • SERVICE_NAME: URI Google API untuk layanan yang menerbitkan peristiwa; misalnya, bigquery.googleapis.com untuk peristiwa dari BigQuery.
  • PROJECT_ID: Google Cloud Project ID Anda.
  • MESSAGE_ID, PUBLISH_TIME, CONTENT_LENGTH: dibuat sistem.

Isi

Payload adalah objek JSON yang menjelaskan peristiwa Cloud Audit Logs. Di protoPayload, Anda dapat menemukan nilai resourceName, serviceName, dan methodName. Untuk mengetahui informasi selengkapnya, lihat Menentukan filter peristiwa untuk Cloud Audit Logs.

Pub/Sub

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

Header

ce-specversion: 1.0
ce-type: google.cloud.pubsub.topic.v1.messagePublished
ce-source: //pubsub.googleapis.com/TOPIC
ce-id: MESSAGE_ID
ce-time: PUBLISH_TIME
Content-Type: application/json; charset=utf-8
Content-Length: CONTENT_LENGTH
  • TOPIC: topik Pub/Sub tempat peristiwa dipublikasikan.
  • MESSAGE_ID, PUBLISH_TIME, CONTENT_LENGTH: dibuat sistem.

Isi

Payload adalah pesan push Pub/Sub. Di kolom data, Anda dapat menemukan pesan sebagai string yang dienkode Base64. Lihat contoh dalam dokumen ini.

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

Langkah berikutnya

Pelajari rute peristiwa lebih lanjut.