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 diatur 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 perouter peristiwa sebagai permintaan HTTP POST yang diformat ke spesifikasi pengikatan protokol HTTP CloudEvents versi 1.0. Setiap permintaan HTTP berisi header dan isi khusus peristiwa, dan 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 acara 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 mengeluarkan peristiwa; misalnya, bigquery.googleapis.com untuk peristiwa dari BigQuery.
  • PROJECT_ID: ID project Google Cloud Anda.
  • MESSAGE_ID, PUBLISH_TIME, CONTENT_LENGTH: dibuat oleh sistem.

Isi

Payload adalah objek JSON yang memerinci 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 oleh sistem.

Isi

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

Repositori open source

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

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

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

Link ke library klien juga disertakan.

Acara umum

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

Ada dua pesan protobuf yang relevan untuk jenis CloudEvent tertentu:

  • Pesan envelope yang merepresentasikan CloudEvent lengkap, termasuk atribut ekstensi; misalnya, AuditLogWrittenEvent.
  • Pesan data; misalnya, LogEntryData atau StorageObjectData.
Banyak jenis CloudEvent dapat menggunakan pesan data yang sama. Misalnya, setiap peristiwa yang terkait dengan objek Cloud Storage menggunakan StorageObjectData sebagai pesan data. Setiap pesan envelope 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 acara
  • serviceName
  • methodName
  • resourceName
Lihat daftar jenis peristiwa 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
Layanan Google Cloud 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 acara
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.