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.
Format der HTTP-Anfrage
Zieldienste empfangen Ereignisse von Ereignis-Routern als HTTP-POST-Anfragen, die gemäß der HTTP-Protokollbindungsspezifikation von CloudEvents Version 1.0 formatiert wurden. Jede HTTP-Anfrage enthält ereignisspezifische Header und einen Textkörper und wird an den Root-URL-Pfad (/
) des Dienstes gesendet.
Neben anderen HTTP-Headern haben alle Ereignisse die folgenden CloudEvents-HTTP-Header:
Header | Beschreibung | Beispiel |
---|---|---|
ce-id | Eindeutige Kennung für das Ereignis | 1096434104173400 |
ce-source | Gibt die Quelle des Ereignisses an | //pubsub.googleapis.com/projects/my-project/topics/my-topic |
ce-specversion | Die CloudEvents-Spezifikationsversion, die für dieses Ereignis verwendet wird. | 1.0 |
ce-type | Die Art der Ereignisdaten | google.cloud.pubsub.topic.v1.messagePublished |
ce-time | Zeitpunkt der Ereigniserstellung im Format RFC 3339 (optional) | 2020-12-20T13:37:33.647Z |
Format der HTTP-Nutzlast
Cloud-Audit-Logs
Ereignisse vom Typ google.cloud.audit.log.v1.written
haben das folgende Format:
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
: der Google API-URI für den Dienst, der das Ereignis ausgibt, z. B.bigquery.googleapis.com
für Ereignisse aus BigQuery.PROJECT_ID
: die ID Ihres GCP-Projekts.MESSAGE_ID
,PUBLISH_TIME
,CONTENT_LENGTH
: vom System generiert.
Text
Die Nutzlast ist ein JSON-Objekt, in dem das Ereignis des Cloud-Audit-Logs detailliert beschrieben wird. In protoPayload
finden Sie die Werte resourceName
, serviceName
und methodName
. Weitere Informationen finden Sie unter Ereignisfilter für Cloud-Audit-Logging ermitteln.
Pub/Sub
Ereignisse vom Typ google.cloud.pubsub.topic.v1.messagePublished
haben das folgende Format:
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
: das Pub/Sub-Thema, in dem das Ereignis veröffentlicht wurde.MESSAGE_ID
,PUBLISH_TIME
,CONTENT_LENGTH
: vom System generiert.
Text
Die Nutzlast ist eine Pub/Sub-Push-Nachricht. Im Feld data
finden Sie die Nachricht als Base64-codierten String. Siehe das Beispiel in diesem Dokument.
Open Source
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 |
|
Beispiel |
Pub/Sub Audit-Log BigQuery Audit-Log |
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 (wenn ein Cloud Storage-Job abgeschlossen, archiviert, gelöscht, aktualisiert wird) |
google.cloud.storage.object.v1.finalized google.cloud.storage.object.v1.archived google.cloud.storage.object.v1.deleted google.cloud.storage.object.v1.metadataUpdated |
Beispiele |
Einfach Komplex |
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 |
Beispiele | Text |