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 an einen 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.
Ö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
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:
: die Google CloudProjekt-ID für das Busprojekt.PROJECT_ID
: die Region, in der der Bus bereitgestellt wird, z. B.LOCATION us-central1
.
: Der Name des Busses, auf dem das Ereignis veröffentlicht werden soll.BUS_NAME
: die Version der CloudEvents-Spezifikation, die für das Ereignis verwendet wird, z. B.SPEC_VERSION 1.0
.
: der Ereignistyp, der sich auf das ursprüngliche Ereignis bezieht.EVENT_TYPE
: die Ereignisquelle eines veröffentlichten Ereignisses.EVENT_SOURCE
: die Ereignis-ID. Feedersteller müssen dafür sorgen, dassEVENT_ID source
+id
für jedes einzelne Ereignis eindeutig ist.
(optional): Der Inhaltstyp desCONTENT_TYPE data
-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.
(optional): die Ereignisnutzlast, die in das vonDATA_PAYLOAD datacontenttype
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:
curl (Linux, macOS oder Cloud Shell)
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "jsonMessage": "{\"specversion\":\"SPEC_VERSION \", \"type\":\"EVENT_TYPE \", \"source\":\"EVENT_SOURCE \", \"id\":\"EVENT_ID \", \"datacontenttype\":\"CONTENT_TYPE \", \"data\":\"DATA_PAYLOAD \"}" } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://eventarcpublishing.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /messageBuses/BUS_NAME :publish"
PowerShell (Windows)
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "jsonMessage": "{\"specversion\":\"SPEC_VERSION \", \"type\":\"EVENT_TYPE \", \"source\":\"EVENT_SOURCE \", \"id\":\"EVENT_ID \", \"datacontenttype\":\"CONTENT_TYPE \", \"data\":\"DATA_PAYLOAD \"}" } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://eventarcpublishing.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /messageBuses/BUS_NAME :publish" | Select-Object -Expand Content
APIs Explorer (Browser)
Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.
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