CloudEvents (cloudevents.io) ist eine Spezifikation zum allgemeinen Beschreiben von Ereignisdaten. Die Spezifikation fällt unter die Cloud Native Computing Foundation (CNCF) und wird von der serverlosen Arbeitsgruppe des CNCF organisiert.
Eventarc liefert Ereignisse über eine HTTP-Anfrage an den Ereignisempfänger im CloudEvents-Format. Das Ziel (z. B. der Workflow-Dienst) konvertiert das Ereignis gemäß der CloudEvents-Spezifikation in ein JSON-Objekt und übergibt das Ereignis als Workflow-Laufzeitargument an die Workflow-Ausführung.
JSON-Nutzlastformat
Der Zieldienst empfängt Ereignisse von Ereignis-Routern und formatiert die Ereignisse im JSON-Ereignisformat für CloudEvents Version 1.0.1 mit den folgenden CloudEvents-Attributen:
Attribut | Beschreibung | Beispiel |
---|---|---|
Daten | Die Nutzlast der Ereignisdaten. | { "subscription": "projects/my-project/subscriptions/my-sub", "message": { "attributes": { "attr1":"attr1-value" }, "data": "aGVsbG8gd29ybGQ=", "messageId": "2070443601311540", "publishTime":"2021-02-26T19:13:55.749Z" } } |
datacontenttype | Der Typ der übergebenen Daten | application/json |
id | Die eindeutige Kennung für das Ereignis | 2070443601311540 |
Quelle | Die Quelle des Ereignisses | //pubsub.googleapis.com/projects/my-project/topics/my-topic |
specversion | Die CloudEvents-Spezifikationsversion, die für dieses Ereignis verwendet wird. | 1,0 |
Typ | Die Art der Ereignisdaten | google.cloud.pubsub.topic.v1.messagePublished |
Zeit | Zeitpunkt der Ereigniserstellung im Format RFC 3339 (optional) | 2020-12-20T13:37:33.647Z |
Je nach Ereignistyp hat die Nutzlast das folgende Format:
Cloud-Audit-Logs
Das Laufzeitargument ist ein JSON-Objekt, in dem das Ereignis des Cloud-Audit-Logs detailliert beschrieben wird. In diesem Dokument finden Sie das Beispiel für häufige Ereignisse.
Im JSON-Objekt finden Sie die Werte resourceName
, serviceName
und methodName
. Weitere Informationen finden Sie unter Ereignisfilter für Cloud-Audit-Logging ermitteln.
Ereignisse vom Typ google.cloud.audit.log.v1.written
haben das folgende Format:
{ "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
: der decodierte Nachrichteninhalt im JSON-Format. Weitere Informationen finden Sie in diesem Dokument unter Häufige Ereignisse.MESSAGE_ID
,EVENT_GENERATION_TIME
: vom System generiert.PROJECT_ID
ist Ihre Google Cloud-Projekt-ID.dataschema
,methodName
,resourceName
,serviceName
,subject
: für den Ereignistyp spezifische Attribute.
Cloud Storage
Die Laufzeitargumente sind Änderungen an Cloud Storage. Im Feld data
finden Sie die Änderung im Cloud Storage-Bucket. In diesem Dokument finden Sie das Beispiel für häufige Ereignisse.
Ereignisse vom Typ google.cloud.storage.object.v1.finalized
haben das folgende Format:
{ "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
: der decodierte Nachrichteninhalt im JSON-Format. Weitere Informationen finden Sie in diesem Dokument unter Häufige Ereignisse.MESSAGE_ID
,EVENT_GENERATION_TIME
: vom System generiert.BUCKET_NAME
: Der Name des Cloud Storage-Buckets, der aktualisiert wird.subject
: Attribut, das für den Ereignistyp spezifisch ist.
Pub/Sub
Das Laufzeitargument ist eine Pub/Sub-Push-Nachricht. Im Feld data
finden Sie die Nachricht als Base64-codierten String. In diesem Dokument finden Sie ein Beispiel für häufige Ereignisse.
Ereignisse vom Typ google.cloud.pubsub.topic.v1.messagePublished
haben das folgende Format:
{ "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
: der decodierte Nachrichteninhalt im JSON-Format. Weitere Informationen finden Sie in diesem Dokument unter Häufige Ereignisse.MESSAGE_ID
,EVENT_GENERATION_TIME
: vom System generiert.TOPIC_NAME
: der Name des Pub/Sub-Themas, in dem das Ereignis veröffentlicht wurde.
Open-Source-Repository
Die Struktur des HTTP-Texts für alle Ereignisse ist im CloudEvents-GitHub-Repository verfügbar.
Das Repository enthält Folgendes, damit Sie CloudEvents-Daten in Ihrer Programmiersprache verstehen und verwenden können:
- Google Protocol Buffers für CloudEvents-Datennutzlasten
- Generierte JSON-Schemas
- Einen öffentlichen JSON-Schemakatalog
Links zu Clientbibliotheken sind ebenfalls enthalten.
Häufige Ereignisse
Protokollzwischenspeicher (oder Protokollpuffer) stellen die Daten innerhalb von Ereignissen dar, die von Eventarc generiert werden. Protokollzwischenspeicher für CloudEvents werden als maschinenlesbare Schemas bereitgestellt, wodurch Bibliotheken von Datentypen erstellt werden können und die Nutzung von Ereignissen vereinfacht wird.
Es gibt zwei protobuf-Nachrichten, die für alle CloudEvent-Typ relevant sind:
- Die Envelope-Nachricht, die das vollständige CloudEvent einschließlich Erweiterungsattribute darstellt. Beispiel:
AuditLogWrittenEvent
. - Die Datennachricht; Beispiel:
LogEntryData
oderStorageObjectData
.
StorageObjectData
als Datennachricht. Jede Envelope-Nachricht gibt den CloudEvent-Typ an, dem sie über eine Proto-Annotation zugeordnet ist.
Weitere Informationen finden Sie unter Beziehung zwischen protobuf-Nachrichten und CloudEvent-Typen.
In den folgenden Tabellen sind die Komponenten einiger häufiger Ereignisse aufgeführt:
Cloud-Audit-Logs
Proto-Dateien | google/events/cloud/audit/v1/events.proto google/events/cloud/audit/v1/data.proto |
Envelope-Nachricht | google.events.cloud.audit.v1.AuditLogWrittenEvent |
Datennachricht | google.events.cloud.audit.v1.LogEntryData |
Ereignistyp (wenn ein Audit-Logeintrag geschrieben wird) |
google.cloud.audit.log.v1.written |
Ereigniserweiterungen |
|
Beispiele |
Pub/Sub Audit-Log BigQuery Audit-Log |
Weitere Informationen |
Eventarc-Trigger für ein Cloud-Audit-Log-Ereignis erstellen Ereignisfilter für Cloud-Audit-Logs bestimmen Google Cloud-Dienste mit Audit-Logs |
Cloud Storage
Proto-Dateien |
google/events/cloud/storage/v1/events.proto google/events/cloud/storage/v1/data.proto |
Envelope-Nachrichten | google.events.cloud.storage.v1.ObjectFinalizedEvent google.events.cloud.storage.v1.ObjectArchivedEvent google.events.cloud.storage.v1.ObjectDeletedEvent google.events.cloud.storage.v1.ObjectMetadataUpdatedEvent |
Datennachricht | google.events.cloud.storage.v1.StorageObjectData |
Ressource |
Objects |
Ereignistypen |
Zur Liste der direkten Ereignistypen. |
Beispiele |
Einfach Komplex |
Weitere Informationen |
Eventarc-Trigger für ein Cloud Storage-Ereignis erstellen Ereignisse von Cloud Storage in einem Cloud Run-Dienst empfangen |
Firestore
Proto-Dateien |
google/events/cloud/firestore/v1/events.proto google/events/cloud/firestore/v1/data.proto |
Envelope-Nachrichten | google.events.cloud.firestore.v1.DocumentCreatedEvent google.events.cloud.firestore.v1.DocumentUpdatedEvent google.events.cloud.firestore.v1.DocumentDeletedEvent google.events.cloud.firestore.v1.DocumentWrittenEvent |
Datennachricht | google.events.cloud.firestore.v1.DocumentEventData |
Ressource |
Document
|
Ereignistypen | Zur Liste der direkten Ereignistypen. |
Beispiele |
Einfach Komplex |
Weitere Informationen |
Eventarc-Trigger für ein Firestore-Ereignis erstellen Ereignisgesteuerte Architekturen mit Eventarc und Firestore erstellen Erweitern mit Cloud Run-Funktionen zur Verarbeitung von Ereignissen, die durch Änderungen in Firestore ausgelöst werden |
Pub/Sub
Proto-Dateien |
google/events/cloud/pubsub/v1/events.proto google/events/cloud/pubsub/v1/data.proto |
Envelope-Nachricht | google.events.cloud.pubsub.v1.MessagePublishedEvent |
Datennachricht | google.events.cloud.pubsub.v1.MessagePublishedData |
Ressource |
PubsubMessage
|
Ereignistyp (wenn eine Pub/Sub-Nachricht veröffentlicht wird) |
google.cloud.pubsub.topic.v1.messagePublished |
Beispiel | Text |
Weitere Informationen |
Ereignisse in einem Cloud Run-Dienst mit Pub/Sub-Nachrichten empfangen Workflow mit Pub/Sub-Nachrichten auslösen |