Vous pouvez publier un événement CloudEvents directement sur un bus Eventarc Advanced dans un format compatible à l'aide de Google Cloud CLI ou en envoyant une requête à l'API REST Eventarc Publishing. Vous pouvez également utiliser les bibliothèques clientes Eventarc pour accéder aux API Eventarc dans un langage compatible.
Le message doit respecter la spécification CloudEvents.
gcloud
Ouvrez un terminal.
Vous pouvez publier des événements sur un bus à l'aide de la commande
gcloud beta eventarc message-buses publish
. Exemple :gcloud beta eventarc message-buses publish BUS_NAME \ --avro-message=AVRO_MESSAGE
gcloud beta eventarc message-buses publish BUS_NAME \ --json-message=JSON_MESSAGE
gcloud beta eventarc message-buses publish BUS_NAME \ --event-data=DATA_PAYLOAD \ --event-id=EVENT_ID \ --event-source=EVENT_SOURCE \ --event-type=EVENT_TYPE \ --event-attributes=EVENT_ATTRIBUTE
Remplacez les éléments suivants :
BUS_NAME
: ID ou identifiant complet du bus auquel publier l'événement.
Vous ne devez utiliser qu'un des éléments suivants:
AVRO_MESSAGE
: message d'événement au format Avro, conformément à cette spécification.JSON_MESSAGE
: message d'événement au format JSON, conformément à cette spécification.DATA_PAYLOAD
: données d'un événement publié.
Si vous utilisez l'indicateur
--event-data
, vous devez également utiliser les éléments suivants:EVENT_ID
: identifiant de l'événement. Les producteurs d'événements doivent s'assurer quesource
+id
est unique pour chaque événement distinct.EVENT_SOURCE
: source d'événement d'un événement publié.EVENT_TYPE
: type d'événement associé à l'événement d'origine.
Si vous utilisez l'indicateur
--event-data
, vous pouvez également utiliser les éléments suivants:EVENT_ATTRIBUTE
: attributs d'un événement publié. Vous pouvez répéter l'indicateur--event-attributes
pour ajouter d'autres attributs.Notez que les événements peuvent inclure un nombre illimité d'attributs CloudEvents personnalisés supplémentaires avec des noms distincts (également appelés attributs d'extension).
Exemples :
gcloud beta eventarc message-buses publish my-bus \ --event-id=1234 \ --event-type=event-provider.event.v1.eventType \ --event-source="//event-provider/event/source" \ --event-data='{"key": "value"}' \ --event-attributes=attribute1=value
gcloud beta eventarc message-buses publish my-bus --json-message @- << EOF { "specversion" : "1.0", "type" : "com.example.someevent", "source" : "google.cloud.storage.object.v1.finalized", "id" : "A234-1234-1234", "time" : "2024-04-05T17:31:00Z", "bucket" : "bucketName", "datacontenttype" : "application/json", "data":{"key": "value"} } EOF
API REST
Pour publier un événement sur un bus, utilisez la méthode projects.locations.messageBuses.publish
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- Nom complet de la ressource du bus au format
projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet Google Cloud du projet de bus.LOCATION
: région dans laquelle le bus est déployé (par exemple,us-central1
).BUS_NAME
: nom du bus auquel publier l'événement.
SPEC_VERSION
: version de la spécification CloudEvents utilisée par l'événement (par exemple,1.0
).EVENT_TYPE
: type d'événement associé à l'occurrence d'origine.EVENT_SOURCE
: source d'événement d'un événement publié.EVENT_ID
: identifiant de l'événement. Les producteurs doivent s'assurer quesource
+id
est unique pour chaque événement distinct.CONTENT_TYPE
(facultatif): type de contenu de la valeurdata
. Si un événement au format JSON ne comporte pas d'attributdatacontenttype
, on suppose que les données sont une valeur JSON conforme au type de médiaapplication/json
.DATA_PAYLOAD
(facultatif): charge utile de l'événement encodée dans le format multimédia spécifié pardatacontenttype
et conforme àdataschema
lorsque ces attributs sont présents.
Corps JSON de la requête :
{ "jsonMessage": "{\"specversion\":\"SPEC_VERSION\", \"type\":\"EVENT_TYPE\", \"source\":\"EVENT_SOURCE\", \"id\":\"EVENT_ID\", \"datacontenttype\":\"CONTENT_TYPE\", \"data\":\"DATA_PAYLOAD\"}" }
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le serveur renvoie un code d'état HTTP 200 OK
et le corps de réponse vide au format JSON:
200 OK {}
Étape suivante
- Publier des événements à partir de sources Google
- Transformer les événements reçus
- Formater les événements reçus