CloudEvents (cloudevents.io) est une spécification permettant d'uniformiser la description des données d'événement. La spécification est rattachée à la Cloud Native Computing Foundation (CNCF) et est organisée au sein du CNCF par le groupe de travail Serverless.
Eventarc fournit des événements au destinataire d'événements au format CloudEvents via une requête HTTP. La cible de destination (par exemple, le service Workflows) convertit l'événement en objet JSON (conformément à la spécification CloudEvents) et transmet l'événement à l'exécution du workflow comme argument d'environnement d'exécution du workflow.
Format de charge utile JSON
Le service de destination reçoit les événements des routeurs d'événements et les met en forme au format d'événement JSON pour CloudEvents version 1.0.1 avec les attributs CloudEvents suivants :
Attribut | Description | Exemple |
---|---|---|
data | Charge utile des données d'événement | { "subscription": "projects/my-project/subscriptions/my-sub", "message": { "attributes": { "attr1":"attr1-value" }, "data": "aGVsbG8gd29ybGQ=", "messageId": "2070443601311540", "publishTime":"2021-02-26T19:13:55.749Z" } } |
datacontenttype | Le type de données transmis | application/json |
id | Identifiant unique de l'événement | 2070443601311540 |
source | Source de l'événement | //pubsub.googleapis.com/projects/my-project/topics/my-topic |
specversion | Version de la spécification CloudEvents utilisée pour cet événement | 1.0 |
type | Type des données d'événement | google.cloud.pubsub.topic.v1.messagePublished |
time | Heure de génération de l'événement, au format RFC 3339 (facultatif) | 2020-12-20T13:37:33.647Z |
Selon le type d'événement, le format de la charge utile est le suivant :
Cloud Audit Logs
L'argument d'exécution est un objet JSON qui détaille l'événement Cloud Audit Logging. Dans ce document, consultez l'exemple d'événements courants.
Dans l'objet JSON, vous pouvez trouver les valeurs resourceName
, serviceName
et methodName
. Pour plus d'informations, consultez la section Déterminer des filtres d'événements pour Cloud Audit Logs.
Les événements de type google.cloud.audit.log.v1.written
sont au format suivant :
{ "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
: contenu de message décodé au format JSON. Pour en savoir plus, consultez la section Événements courants de ce document.MESSAGE_ID
,EVENT_GENERATION_TIME
: générés par le système.PROJECT_ID
: ID de votre projet Google Cloud.dataschema
,methodName
,resourceName
,serviceName
,subject
: attributs spécifiques au type d'événement.
Cloud Storage
Les arguments d'exécution sont des modifications apportées à Cloud Storage. Le champ data
vous permet de trouver la modification dans le bucket Cloud Storage. Dans ce document, consultez l'exemple d'événements courants.
Les événements de type google.cloud.storage.object.v1.finalized
sont au format suivant :
{ "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
: contenu de message décodé au format JSON. Pour en savoir plus, consultez la section Événements courants de ce document.MESSAGE_ID
,EVENT_GENERATION_TIME
: générés par le système.BUCKET_NAME
: nom du bucket Cloud Storage mis à jour.subject
: attribut spécifique au type d'événement.
Pub/Sub
L'argument d'exécution est un message push Pub/Sub. Le champ data
contient le message sous forme de chaîne encodée en base64. Dans ce document, consultez l'exemple d'événements courants.
Les événements de type google.cloud.pubsub.topic.v1.messagePublished
sont au format suivant :
{ "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
: contenu de message décodé au format JSON. Pour en savoir plus, consultez la section Événements courants de ce document.MESSAGE_ID
,EVENT_GENERATION_TIME
: générés par le système.TOPIC_NAME
: nom du sujet Pub/Sub dans lequel l'événement a été publié.
Dépôt Open Source
La structure du corps HTTP de tous les événements est disponible dans le dépôt GitHub de CloudEvents.
Le dépôt contient les éléments suivants pour vous aider à comprendre et utiliser les données CloudEvents dans votre langage de programmation :
- Les tampons de protocole Google pour les charges utiles de données CloudEvents
- Les schémas JSON générés
- Un catalogue de schémas JSON public
Des liens vers des bibliothèques clientes sont également inclus.
Événements courants
Les tampons de protocole (ou protobufs) représentent les données dans les événements générés par Eventarc. Les tampons de protocole de CloudEvents sont fournis sous forme de schémas lisibles par un ordinateur, ce qui permet de créer des bibliothèques de types de données et de faciliter l'utilisation d'événements.
Deux messages protobuf sont pertinents pour tout type d'événement CloudEvent donné :
- Le message envelope qui représente l'événement CloudEvent complet, y compris les attributs d'extension, par exemple
AuditLogWrittenEvent
. - Le message data : Par exemple,
LogEntryData
ouStorageObjectData
.
StorageObjectData
comme message de données. Chaque message encapsulé spécifie le type CloudEvent auquel il est associé via une annotation proto.
Pour plus d'informations, consultez la section Relation entre les messages protobuf et les types CloudEvent.
Les tableaux suivants détaillent les composants de certains événements courants :
Cloud Audit Logs
Fichiers proto | google/events/cloud/audit/v1/events.proto google/events/cloud/audit/v1/data.proto |
Message envelope | google.events.cloud.audit.v1.AuditLogWrittenEvent |
Message data | google.events.cloud.audit.v1.LogEntryData |
Type d'événement (lorsqu'une entrée de journal d'audit est écrite) |
google.cloud.audit.log.v1.written |
Extensions d'événement |
|
Exemples |
Journal d'audit Pub/Sub Journal d'audit BigQuery |
En savoir plus |
Créer un déclencheur Eventarc pour un événement Cloud Audit Logs Déterminer les filtres d'événements pour Cloud Audit Logs Google Cloud services avec journaux d'audit |
Cloud Storage
Fichiers proto |
google/events/cloud/storage/v1/events.proto google/events/cloud/storage/v1/data.proto |
Messages envelope | google.events.cloud.storage.v1.ObjectFinalizedEvent google.events.cloud.storage.v1.ObjectArchivedEvent google.events.cloud.storage.v1.ObjectDeletedEvent google.events.cloud.storage.v1.ObjectMetadataUpdatedEvent |
Message data | google.events.cloud.storage.v1.StorageObjectData |
Ressource |
Objects |
Types d'événement |
Consultez la liste des types d'événements directs. |
Exemples |
Simple Complexe |
En savoir plus |
Créer un déclencheur Eventarc pour un événement Cloud Storage Recevoir des événements depuis Cloud Storage dans un service Cloud Run |
Firestore
Fichiers proto |
google/events/cloud/firestore/v1/events.proto google/events/cloud/firestore/v1/data.proto |
Messages envelope | google.events.cloud.firestore.v1.DocumentCreatedEvent google.events.cloud.firestore.v1.DocumentUpdatedEvent google.events.cloud.firestore.v1.DocumentDeletedEvent google.events.cloud.firestore.v1.DocumentWrittenEvent |
Message data | google.events.cloud.firestore.v1.DocumentEventData |
Ressource |
Document
|
Types d'événement | Consultez la liste des types d'événements directs. |
Exemples |
Simple Complexe |
En savoir plus |
Créer un déclencheur Eventarc pour un événement Firestore Créer des architectures basées sur des événements avec Eventarc et Firestore Étendre à l'aide des fonctions Cloud Run pour gérer les événements déclenchés par les modifications apportées à Firestore |
Pub/Sub
Fichiers proto |
google/events/cloud/pubsub/v1/events.proto google/events/cloud/pubsub/v1/data.proto |
Message envelope | google.events.cloud.pubsub.v1.MessagePublishedEvent |
Message data | google.events.cloud.pubsub.v1.MessagePublishedData |
Ressource |
PubsubMessage
|
Type d'événement (lorsqu'un message Pub/Sub est publié) |
google.cloud.pubsub.topic.v1.messagePublished |
Exemple | Texte |
En savoir plus |
Recevoir des événements dans un service Cloud Run à l'aide de messages Pub/Sub Déclencher un workflow à l'aide de messages Pub/Sub |