CloudEvents (cloudevents.io) è una specifica per la descrizione dei dati sugli eventi in un modo comune. La specifica fa parte della Cloud Native Computing Foundation (CNCF) ed è organizzata dal Serverless Working Group della CNCF.
Eventarc invia gli eventi al ricevitore di eventi nel formato CloudEvents tramite una richiesta HTTP.
Intestazioni delle richieste HTTP
I servizi di destinazione ricevono gli eventi dai router di eventi come richieste HTTP POST formattate in base alla
specifica di binding del protocollo HTTP della versione 1.0 di CloudEvents. Ogni richiesta HTTP contiene intestazioni specifiche per gli eventi e un corpo e viene inviata al percorso dell'URL principale (/
) del servizio.
Oltre ad altre intestazioni HTTP, tutti gli eventi hanno le seguenti intestazioni HTTP CloudEvents:
Titolo | Descrizione | Esempio |
---|---|---|
ce-id | Identificatore univoco dell'evento | 1096434104173400 |
ce-source | Identifica l'origine dell'evento | //pubsub.googleapis.com/projects/my-project/topics/my-topic |
ce-specversion | La versione della specifica CloudEvents utilizzata per questo evento | 1.0 |
ce-type | Il tipo di dati sugli eventi | google.cloud.pubsub.topic.v1.messagePublished |
ce-time | Ora di generazione dell'evento, in formato RFC 3339 (facoltativo) | 2020-12-20T13:37:33.647Z |
Formato del payload HTTP
Cloud Audit Logs
Gli eventi di tipo google.cloud.audit.log.v1.written
hanno il seguente formato:
Intestazioni
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
: l'URI dell'API Google per il servizio che emette l'evento; ad esempio,bigquery.googleapis.com
per gli eventi di BigQuery.PROJECT_ID
: il tuo Google Cloud ID progetto.MESSAGE_ID
,PUBLISH_TIME
,CONTENT_LENGTH
: generati dal sistema.
Corpo
Il payload è un oggetto JSON che descrive l'evento Cloud Audit Logs. In
protoPayload
puoi trovare i valori resourceName
, serviceName
e methodName
. Per ulteriori informazioni, consulta
Determinare i filtri eventi per gli audit log di Cloud.
Pub/Sub
Gli eventi di tipo google.cloud.pubsub.topic.v1.messagePublished
hanno il seguente
formato:
Intestazioni
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
: l'argomento Pub/Sub in cui è stato pubblicato l'evento.MESSAGE_ID
,PUBLISH_TIME
,CONTENT_LENGTH
: generati dal sistema.
Corpo
Il payload è un messaggio push Pub/Sub. Nel campo data
puoi trovare il messaggio come stringa con codifica Base64. Consulta l'esempio in questo documento.
Repository open source
La struttura del corpo HTTP per tutti gli eventi è disponibile nel repository GitHub di CloudEvents.
Il repository contiene quanto segue per aiutarti a comprendere e utilizzare i dati CloudEvents nel tuo linguaggio di programmazione:
- Google Protocol Buffers per i payload dei dati CloudEvents
- Schemi JSON generati
- Un catalogo pubblico di schemi JSON
Sono inclusi anche i link alle librerie client.
Eventi comuni
Protocol Buffers (o protobuf) rappresentano i dati all'interno degli eventi generati da Eventarc. Protocol Buffers per CloudEvents sono forniti come schemi leggibili dalla macchina, che consentono di creare librerie di tipi di dati e semplificano l'utilizzo degli eventi.
Esistono due messaggi protobuf pertinenti per qualsiasi tipo di CloudEvent:
- Il messaggio envelope che rappresenta il CloudEvent completo, inclusi eventuali attributi di estensione; ad esempio,
AuditLogWrittenEvent
. - Il messaggio data, ad esempio
LogEntryData
oStorageObjectData
.
StorageObjectData
come messaggio di dati. Ogni messaggio dell'involucro
specifica il tipo di CloudEvent a cui è associato tramite un'annotazione proto.
Per saperne di più, consulta Relazione tra messaggi protobuf e tipi CloudEvent.
Le tabelle seguenti descrivono in dettaglio i componenti di alcuni eventi comuni:
Cloud Audit Logs
File Proto | google/events/cloud/audit/v1/events.proto google/events/cloud/audit/v1/data.proto |
Messaggio della busta | google.events.cloud.audit.v1.AuditLogWrittenEvent |
Messaggio di dati | google.events.cloud.audit.v1.LogEntryData |
Tipo di evento (quando viene scritta una voce del log di controllo) |
google.cloud.audit.log.v1.written |
Estensioni evento |
|
Esempi |
Log di controllo Pub/Sub Log di controllo BigQuery |
Ulteriori informazioni |
Crea un trigger Eventarc per un evento Cloud Audit Logs Determina i filtri eventi per Cloud Audit Logs Google Cloud servizi con audit log |
Cloud Storage
File Proto |
google/events/cloud/storage/v1/events.proto google/events/cloud/storage/v1/data.proto |
Messaggi della busta | google.events.cloud.storage.v1.ObjectFinalizedEvent google.events.cloud.storage.v1.ObjectArchivedEvent google.events.cloud.storage.v1.ObjectDeletedEvent google.events.cloud.storage.v1.ObjectMetadataUpdatedEvent |
Messaggio di dati | google.events.cloud.storage.v1.StorageObjectData |
Risorsa |
Objects |
Tipi di eventi |
Consulta l'elenco dei tipi di eventi diretti. |
Esempi |
Semplice Complesso |
Ulteriori informazioni |
Crea un trigger Eventarc per un evento Cloud Storage Ricevi eventi da Cloud Storage in un servizio Cloud Run |
Firestore
File Proto |
google/events/cloud/firestore/v1/events.proto google/events/cloud/firestore/v1/data.proto |
Messaggi della busta | google.events.cloud.firestore.v1.DocumentCreatedEvent google.events.cloud.firestore.v1.DocumentUpdatedEvent google.events.cloud.firestore.v1.DocumentDeletedEvent google.events.cloud.firestore.v1.DocumentWrittenEvent |
Messaggio di dati | google.events.cloud.firestore.v1.DocumentEventData |
Risorsa |
Document
|
Tipi di evento | Consulta l'elenco dei tipi di eventi diretti. |
Esempi |
Semplice Complesso |
Ulteriori informazioni |
Crea un trigger Eventarc per un evento Firestore Crea architetture basate su eventi con Eventarc e Firestore Espandi con le funzioni Cloud Run per gestire gli eventi attivati dalle modifiche in Firestore |
Pub/Sub
File Proto |
google/events/cloud/pubsub/v1/events.proto google/events/cloud/pubsub/v1/data.proto |
Messaggio della busta | google.events.cloud.pubsub.v1.MessagePublishedEvent |
Messaggio di dati | google.events.cloud.pubsub.v1.MessagePublishedData |
Risorsa |
PubsubMessage
|
Tipo di evento (quando viene pubblicato un messaggio Pub/Sub) |
google.cloud.pubsub.topic.v1.messagePublished |
Esempio | Testo |
Ulteriori informazioni |
Ricevi
eventi in un servizio Cloud Run utilizzando i messaggi Pub/Sub Attiva un flusso di lavoro utilizzando i messaggi Pub/Sub |
Passaggi successivi
Scopri di più sui percorsi degli eventi.