In diesem Dokument wird beschrieben, wie Sie Nachrichten in einem Thema mit einem Schema veröffentlichen.
Hinweis
Führen Sie vor dem Konfigurieren des Veröffentlichungs-Workflows die folgenden Aufgaben aus:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Publisher (roles/pubsub.publisher) für das Thema zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Veröffentlichen von Nachrichten in einem Thema benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Sie benötigen zusätzliche Berechtigungen, um Themen und Abos zu erstellen oder zu aktualisieren.Nachrichten mit Schema veröffentlichen
Sie können Nachrichten in einem Thema veröffentlichen, das mit einem Schema verknüpft ist. Sie müssen die Nachrichten in dem Schema und Format codieren, das Sie beim Erstellen des Themas angegeben haben. Eine Nachricht entspricht dem mit dem Thema verknüpften Schema, wenn sie mit einer der Schemaversionen im zulässigen Versionsbereich übereinstimmt. Nachrichten werden anhand von Überarbeitungen in der Reihenfolge von der neuesten zulässigen Überarbeitung bis entweder eine Übereinstimmung gefunden wird oder die älteste zulässige Überarbeitung erreicht ist, ausgewertet. Pub/Sub fügt einer Nachricht, die erfolgreich in einem Thema mit einem Schema veröffentlicht wurde, die folgenden Attribute hinzu:
googclient_schemaname: Den Namen des Schemas, das für die Validierung verwendet wird.googclient_schemaencoding: Die Codierung der Nachricht, entweder JSON oder BINARY.googclient_schemarevisionid: Die Revisions-ID des Schemas, das zum Parsen und Validieren der Nachricht verwendet wird. Jeder Überarbeitung ist eine eindeutige Überarbeitungs-ID zugeordnet. Die Revisions-ID ist eine automatisch generierte achtstellige UUID.
Wenn eine Nachricht nicht mit einer der vom Thema zugelassenen Schemaversionen übereinstimmt, gibt Pub/Sub für die Veröffentlichungsanfrage einen INVALID_ARGUMENT-Fehler zurück.
Pub/Sub wertet Nachrichten nur zum Zeitpunkt der Veröffentlichung anhand von Schemaversionen aus. Wenn Sie eine neue Schemaversion committen oder das mit einem Thema verknüpfte Schema ändern, nachdem Sie eine Nachricht veröffentlicht haben, wird diese Nachricht nicht neu ausgewertet und es werden keine der angehängten Schema-Nachrichtenattribute geändert.
Sie können Nachrichten für ein Thema mit einem zugehörigen Schema in einem Google Cloud-Projekt über die Google Cloud Console, die gcloud CLI, die Pub/Sub API oder die Cloud-Clientbibliotheken veröffentlichen.
gcloud
Aktivieren Sie Cloud Shell in der Cloud de Confiance Console.
Unten in der Cloud de Confiance Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
Veröffentlichen Sie eine Beispielnachricht mit dem Befehl gcloud pubsub topics publish.
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGEErsetzen Sie Folgendes:
TOPIC_ID: Name des Themas, das Sie bereits erstellt haben.
MESSAGE: Die Nachricht wurde im Thema veröffentlicht. Eine Beispielnachricht könnte so aussehen:
{"name": "Alaska", "post_abbr": "AK"}.
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
Avro ProtoC#
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C# in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C# API.
Avro ProtoGo
Im folgenden Beispiel wird die Hauptversion der Go Pub/Sub-Clientbibliothek (v2) verwendet. Wenn Sie noch die v1-Bibliothek verwenden, finden Sie hier die Migrationsanleitung zu v2. Eine Liste der Codebeispiele für Version 1 finden Sie unter Eingestellte Codebeispiele.
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Go-Einrichtungsanleitung in der Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Go API.
Avro ProtoJava
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Java in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Java API.
Avro ProtoNode.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Node.js in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Avro ProtokollzwischenspeicherNode.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Node.js in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Pub/Sub Node.js API-Referenzdokumentation.
Avro ProtokollzwischenspeicherPHP
Folgen Sie der Einrichtungsanleitung für PHP unter Schnellstart: Clientbibliotheken verwenden, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub PHP API.
Avro ProtokollzwischenspeicherPython
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Python in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Python API.
Avro ProtokollzwischenspeicherRuby
Im folgenden Beispiel wird die Ruby Pub/Sub-Clientbibliothek v3 verwendet. Wenn Sie noch die v2-Bibliothek verwenden, lesen Sie die Migrationsanleitung zu v3. Eine Liste der Ruby v2-Codebeispiele finden Sie unter eingestellte Codebeispiele.
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Ruby in der Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Avro ProtokollzwischenspeicherNächste Schritte
Informationen zum Einschränken der Standorte, an denen Pub/Sub Nachrichtendaten speichert, finden Sie unter Pub/Sub-Ressourcenstandorte einschränken.
Weitere Informationen zum Empfangen von Nachrichten finden Sie unter Abo-Typ auswählen.