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
atauStorageObjectData
.
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 proto | google/events/cloud/audit/v1/events.proto google/events/cloud/audit/v1/data.proto |
Pesan amplop | google.events.cloud.audit.v1.AuditLogWrittenEvent |
Pesan data | google.events.cloud.audit.v1.LogEntryData |
Jenis peristiwa (saat entri log audit ditulis) |
google.cloud.audit.log.v1.written |
Ekstensi peristiwa |
|
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 amplop | google.events.cloud.storage.v1.ObjectFinalizedEvent google.events.cloud.storage.v1.ObjectArchivedEvent google.events.cloud.storage.v1.ObjectDeletedEvent google.events.cloud.storage.v1.ObjectMetadataUpdatedEvent |
Pesan data | google.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 amplop | google.events.cloud.firestore.v1.DocumentCreatedEvent google.events.cloud.firestore.v1.DocumentUpdatedEvent google.events.cloud.firestore.v1.DocumentDeletedEvent google.events.cloud.firestore.v1.DocumentWrittenEvent |
Pesan data | google.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 amplop | google.events.cloud.pubsub.v1.MessagePublishedEvent |
Pesan data | google.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 |