In diesem Dokument wird gezeigt, wie Sie Nachrichten in einem Thema mit einem Schema veröffentlichen.
Hinweise
Bevor Sie den Veröffentlichungs-Workflow konfigurieren, müssen Sie die folgenden Aufgaben ausführen:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub Publisher (roles/pubsub.publisher
) für das Thema zuzuweisen, damit Sie die Berechtigungen 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 einem 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 einer der Schemaüberarbeitungen im zulässigen Überarbeitungsbereich entspricht. 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 veröffentlicht wurde, das mit einem Schema verknüpft ist, 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 wurde. Jeder Überarbeitung ist eine eindeutige Überarbeitungs-ID zugeordnet. Die Überarbeitungs-ID ist eine automatisch generierte achtstellige UUID.
Wenn eine Nachricht mit keiner der vom Thema zugelassenen Schemaversionen übereinstimmt, gibt Pub/Sub einen INVALID_ARGUMENT
-Fehler für die Veröffentlichungsanfrage 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
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Veröffentlichen Sie eine Beispielnachricht mit dem Befehl gcloud pubsub topics publish.
gcloud pubsub topics publish TOPIC_ID \ --message=MESSAGE
Ersetzen Sie Folgendes:
TOPIC_ID: Name des Themas, das Sie bereits erstellt haben.
MESSAGE: Die Nachricht wurde im Thema veröffentlicht. Eine Beispielnachricht kann
{"name": "Alaska", "post_abbr": "AK"}
sein.
C++
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für C++ in der Kurzanleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub C++ API.
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 den Migrationsleitfaden für v2. Eine Liste der Codebeispiele für Version 1 finden Sie unter Eingestellte Codebeispiele.
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Go in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu 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 PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Avro Protocol BufferNode.js
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für PHP in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Node.js API.
Avro Protocol BufferPHP
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 Protocol BufferPython
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 Protocol BufferRuby
Im folgenden Beispiel wird die Ruby-Pub/Sub-Clientbibliothek v3 verwendet. Wenn Sie noch die v2-Bibliothek verwenden, finden Sie hier die Migrationsanleitung für v3. Eine Liste der Ruby v2-Codebeispiele finden Sie unter Eingestellte Codebeispiele.
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Ruby im Schnellstart: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Avro Protocol BufferNächste Schritte
Informationen zum Einschränken der Standorte, an denen Pub/Sub Nachrichtendaten speichert, finden Sie unter Pub/Sub-Ressourcenstandorte beschränken.
Weitere Informationen zum Empfangen von Nachrichten finden Sie unter Abo-Typ auswählen.