Sie können ein CloudEvents-Ereignis mit der Google Cloud CLI oder durch Senden einer Anfrage an die Eventarc Publishing REST API direkt in einem unterstützten Format auf einem Eventarc Advanced-Bus veröffentlichen. Sie können auch die Eventarc-Clientbibliotheken verwenden, um in einer unterstützten Sprache auf die Eventarc APIs zuzugreifen.
Die Nachricht muss der CloudEvents-Spezifikation entsprechen.
gcloud
Öffnen Sie ein Terminalfenster.
Sie können Ereignisse mit dem Befehl
gcloud beta eventarc message-buses publish
auf einem Bus veröffentlichen. Beispiel: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
Ersetzen Sie Folgendes:
BUS_NAME
: die ID oder voll qualifizierte Kennzeichnung des Busses, auf dem das Ereignis veröffentlicht werden soll.
Sie dürfen nur eine der folgenden Optionen verwenden:
AVRO_MESSAGE
: Die Ereignisnachricht im Avro-Format gemäß dieser Spezifikation.JSON_MESSAGE
: die Ereignisnachricht im JSON-Format gemäß dieser Spezifikation.DATA_PAYLOAD
: die Daten eines veröffentlichten Ereignisses.
Wenn Sie das Flag
--event-data
verwenden, müssen Sie auch Folgendes verwenden:EVENT_ID
: die Ereignis-ID. Die Ereignis-Produzenten müssen dafür sorgen, dasssource
+id
für jedes einzelne Ereignis eindeutig ist.EVENT_SOURCE
: Die Ereignisquelle eines veröffentlichten Ereignisses.EVENT_TYPE
: Die Art des Ereignisses, das mit dem ursprünglichen Ereignis zusammenhängt.
Wenn Sie das Flag
--event-data
verwenden, können Sie optional Folgendes verwenden:EVENT_ATTRIBUTE
: die Attribute eines veröffentlichten Ereignisses. Sie können das Flag--event-attributes
wiederholen, um weitere Attribute hinzuzufügen.Ereignisse können beliebig viele zusätzliche benutzerdefinierte CloudEvents-Attribute mit unterschiedlichen Namen enthalten (auch Erweiterungsattribute genannt).
Beispiele:
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
REST API
Verwenden Sie die Methode projects.locations.messageBuses.publish
, um ein Ereignis auf einem Bus zu veröffentlichen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- Der vollständige Ressourcenname des Busses im Format
projects/PROJECT_ID/locations/LOCATION/messageBuses/BUS_NAME
Ersetzen Sie Folgendes:
PROJECT_ID
: die Google Cloud-Projekt-ID für das Busprojekt.LOCATION
: die Region, in der der Bus bereitgestellt wird, z. B.us-central1
.BUS_NAME
: Der Name des Busses, auf dem das Ereignis veröffentlicht werden soll.
SPEC_VERSION
: die Version der CloudEvents-Spezifikation, die für das Ereignis verwendet wird, z. B.1.0
.EVENT_TYPE
: der Ereignistyp, der sich auf das ursprüngliche Ereignis bezieht.EVENT_SOURCE
: die Ereignisquelle eines veröffentlichten Ereignisses.EVENT_ID
: die Ereignis-ID. Feedersteller müssen dafür sorgen, dasssource
+id
für jedes einzelne Ereignis eindeutig ist.CONTENT_TYPE
(optional): Der Inhaltstyp desdata
-Werts. Wenn ein Ereignis im JSON-Format keindatacontenttype
-Attribut hat, wird davon ausgegangen, dass es sich bei den Daten um einen JSON-Wert handelt, der dem Medientypapplication/json
entspricht.DATA_PAYLOAD
(optional): die Ereignisnutzlast, die in das vondatacontenttype
angegebene Medienformat codiert ist unddataschema
entspricht, sofern diese Attribute vorhanden sind.
JSON-Text der Anfrage:
{ "jsonMessage": "{\"specversion\":\"SPEC_VERSION\", \"type\":\"EVENT_TYPE\", \"source\":\"EVENT_SOURCE\", \"id\":\"EVENT_ID\", \"datacontenttype\":\"CONTENT_TYPE\", \"data\":\"DATA_PAYLOAD\"}" }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Bei Erfolg gibt der Server den HTTP-Statuscode 200 OK
und den leeren Antworttext im JSON-Format zurück:
200 OK {}
Nächste Schritte
- Ereignisse aus Google-Quellen veröffentlichen
- Empfangene Ereignisse transformieren
- Empfangene Ereignisse formatieren