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.
Di 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
: ID project Google Cloud 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 akan 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.MESSAGE_ID
,EVENT_GENERATION_TIME
: dibuat oleh 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 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
atauStorageObjectData
.
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 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 acara |
|
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 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 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 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 |