In diesem Dokument wird das Erstellen, Aktualisieren, Aufrufen und Löschen eines Pub/Sub-Themas erläutert. Außerdem wird erläutert, wie Sie Themen und Abos benennen.
Eigenschaften eines Themas
Wenn Sie ein Thema erstellen oder aktualisieren, müssen Sie seine Eigenschaften angeben.
Standardabo hinzufügen Fügt dem Pub/Sub-Thema ein Standardabo hinzu. Sie können ein weiteres Abo für das Thema erstellen, nachdem das Thema erstellt wurde. Das Standardabo hat folgende Properties:
- Abo-ID von
-sub
- Pull-Zustellungstyp
- Aufbewahrungsdauer für Nachrichten von sieben Tagen
- Ablauf nach 31 Tagen Inaktivität
- Bestätigungsfrist von 10 Sekunden
- Richtlinie für sofortige Wiederholung
- Abo-ID von
Schema. Ein Schema ist ein Format, dem das Datenfeld der Nachricht entsprechen muss. Ein Schema ist ein Vertrag zwischen dem Publisher und dem Abonnenten, der von Pub/Sub erzwungen wird. Mit Themenschemas können Sie Nachrichtentypen und -berechtigungen standardisieren, damit sie von verschiedenen Teams in Ihrer Organisation verwendet werden können. Pub/Sub erstellt eine zentrale Zertifizierungsstelle für Nachrichtentypen und Berechtigungen. Informationen zum Erstellen eines Themas mit Schema finden Sie unter Schemas erstellen und verwalten.
Aufbewahrungsdauer für Nachrichten: Gibt an, wie lange Nachrichten im Pub/Sub-Thema aufbewahrt werden. Nach Ende der Nachrichtenaufbewahrung kann Pub/Sub die Nachricht unabhängig vom Status der Bestätigung verwerfen. Es fallen Gebühren für die Speicherung aller Nachrichten an, die für das Thema veröffentlicht werden.
- Standard = Nicht aktiviert
- Mindestwert = 10 Minuten
- Maximalwert = 31 Tage
Vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) verwenden Gibt an, ob das Thema mit einem CMEK verschlüsselt ist. Pub/Sub verschlüsselt Nachrichten standardmäßig mit von Google verwalteten Schlüsseln. Wenn Sie diese Option angeben, verwendet Pub/Sub das Envelope-Verschlüsselungsmuster mit CMEK. Bei diesem Ansatz verschlüsselt Cloud KMS die Nachrichten nicht. Stattdessen verschlüsselt Cloud KMS die Datenverschlüsselungsschlüssel (Data Encryption Keys, DEKs), die von Pub/Sub für jedes Thema erstellt werden. Pub/Sub verschlüsselt die Nachrichten mit dem neuesten DEK, der für das Thema generiert wurde. Pub/Sub entschlüsselt die Nachrichten kurz vor der Zustellung an die Abonnenten. Weitere Informationen zum Erstellen eines Schlüssels finden Sie unter Nachrichtenverschlüsselung konfigurieren.
Richtlinien für die Benennung eines Themas oder Abos
Ein Pub/Sub-Ressourcenname identifiziert eine Pub/Sub-Ressource (z. B. ein Abo oder Thema) eindeutig und muss das folgende Format haben:
projects/project-identifier/collection/ID
project-identifier.
Muss die Projekt-ID sein, die in der Google Cloud Console verfügbar ist. Beispiel:projects/sampleproject/topics/sampletopic
collection.
Hier muss entwedersubscriptions
,snapshots
odertopics
angegeben werden.ID.
muss den folgenden Richtlinien entsprechen:- Darf nicht mit dem String
goog
beginnen - Muss mit einem Buchstaben beginnen
- Er muss zwischen 3 und 255 Zeichen lang sein
- Sie darf nur die folgenden Zeichen enthalten: Buchstaben
[A-Za-z]
, Ziffern[0-9]
, Bindestriche-
, Unterstriche_
, Punkte.
, Tilden~
, Pluszeichen+
und Prozentzeichen%
Sie können die Sonderzeichen in der vorherigen Liste in Ressourcennamen ohne URL-Codierung verwenden. Andere Sonderzeichen müssen jedoch richtig codiert oder decodiert werden, wenn Sie sie in URLs verwenden. Beispielsweise ist
mi-tópico
ein ungültiger relativer Name.mi-t%C3%B3pico
ist jedoch gültig. Dieses Format ist wichtig, wenn Sie REST-Aufrufe ausführen.- Darf nicht mit dem String
Thema erstellen
Erstelle ein Thema, bevor du es veröffentlichen oder abonnieren kannst.
Console
So erstellen Sie ein Thema:
Rufen Sie in der Console die Seite Pub/Sub auf.
Klicken Sie auf Thema erstellen.
Geben Sie im Feld Themen-ID eine ID für das Thema ein.
Behalten Sie die Option Standardabo hinzufügen bei.
Wählen Sie nicht die anderen Optionen aus.
Klicken Sie auf Thema erstellen.
gcloud
Führen Sie den Befehl gcloud pubsub topics create
aus, um ein Thema zu erstellen:
gcloud pubsub topics create TOPIC_ID
REST
Verwenden Sie die Methode projects.topics.create
, um ein Thema zu erstellen:
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Dabei gilt:
Lösung:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID" }
C++
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von C++, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Einschränkungen für Organisationsrichtlinien
Organisationsrichtlinien können das Erstellen von Themen einschränken, z. B. eine Nachrichtenspeicherung in einer Compute Engine-Region. Prüfen Sie die Organisationsrichtlinien bei Bedarf und aktualisieren Sie sie, bevor Sie ein Thema erstellen, um Fehler beim Erstellen von Themen zu vermeiden.
Warten Sie einige Minuten, bis die Organisationsrichtlinie initialisiert wurde, bevor Sie ein Thema erstellen.
Zu den Organisationsrichtlinien
Thema mit einem Schema erstellen
Beim Erstellen eines Themas möchten Sie möglicherweise ein Schema zuweisen.
Nachfolgend finden Sie einige Richtlinien zur Verwendung von Schemas:
- Zu vorhandenen Themen können keine Schemas hinzugefügt werden.
- Sie können ein Schema nur beim Erstellen eines Themas angeben.
- Nachdem ein Schema mit einem Thema verknüpft ist, können Sie es nicht mehr aktualisieren oder seine Verknüpfung mit diesem Thema entfernen.
- Sie können dasselbe Schema auf andere neue Themen anwenden.
- Wenn Sie ein Schema löschen, schlägt die Veröffentlichung in allen verknüpften Themen fehl.
Weitere Informationen zu Schemas finden Sie unter Schemas erstellen und verwalten.
Console
So erstellen Sie ein Thema und weisen ihm ein Schema zu:
Rufen Sie in der Konsole die Seite Pub/Sub-Themen auf.
Klicken Sie auf Thema erstellen.
Geben Sie im Feld Themen-ID eine ID für das Thema ein.
Klicken Sie das Kästchen Schema verwenden an. Übernehmen Sie für die restlichen Optionen die Standardeinstellungen.
Klicken Sie auf Pub/Sub-Schema auswählen und dann Neues Schema erstellen. Wenn Sie ein vorhandenes Schema verwenden möchten, fahren Sie mit Schritt 7 fort.
Geben Sie im Feld Schema-ID eine ID für Ihr Schema ein.
Wählen Sie als Schematyp entweder Avro oder den Protokollpuffer aus.
Geben Sie im Feld Schemadefinition die Avro- oder Protocol Buffer-Definition für Ihr Schema ein.
Klicken Sie auf Erstellen, um das Schema zu speichern.
Suchen Sie im Dialogfeld Thema erstellen im Feld Pub/Sub-Schema auswählen nach Ihrem Schema.
Klicken Sie auf Erstellen, um das Thema zu speichern und mit dem ausgewählten Schema zuzuweisen.
gcloud
Führen Sie den Befehl gcloud pubsub topics create
aus, um ein Thema zu erstellen, das einem zuvor erstellten Schema zugewiesen ist:
gcloud pubsub topics create TOPIC_ID \ --message-encoding=ENCODING_TYPE \ --schema=SCHEMA_ID
Dabei gilt:
- TOPIC_ID ist die ID des Themas, das Sie erstellen.
- ENCODING_TYPE ist die Codierung von Nachrichten, die anhand des Schemas geprüft wurden. Dieser Wert muss entweder auf
JSON
oderBINARY
gesetzt sein. - SCHEMA_ID ist die ID eines vorhandenen Schemas.
Sie können auch ein Schema aus einem anderen Google Cloud-Projekt zuweisen:
gcloud pubsub topics create TOPIC_ID \ --message-encoding=ENCODING_TYPE \ --schema=SCHEMA_ID \ --schema-project=SCHEMA_PROJECT \ --project=TOPIC_PROJECT
Dabei gilt:
- SCHEMA_PROJECT ist die Projekt-ID des Google Cloud-Projekts für das Schema.
- TOPIC_PROJECT ist die Projekt-ID des Google Cloud-Projekts für das Thema.
REST
Verwenden Sie die Methode projects.topics.create
, um ein Thema zu erstellen:
Anfrage:
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Anfragetext:
{ "schemaSettings": { "schema": "SCHEMA_NAME", "encoding": "ENCODING_TYPE" } }
Dabei gilt:
- PROJECT_ID ist die Projekt-ID.
- TOPIC_ID ist Ihre Themen-ID.
- SCHEMA_NAME ist der Name des Schemas, anhand dessen die veröffentlichten Nachrichten validiert werden sollen. Das Format ist:
projects/PROJECT_ID/schemas/SCHEMA_ID
. - ENCODING_TYPE ist die Codierung von Nachrichten, die anhand des Schemas geprüft wurden. Diese muss entweder auf
JSON
oderBINARY
festgelegt sein.
Lösung:
{ "name": "projects/PROJECT_ID/topics/TOPIC_ID", "schemaSettings": { "schema": "SCHEMA_NAME", "encoding": "ENCODING_TYPE" } }
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.
C#
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.
Go
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 zur Pub/Sub Go API.
Java
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.
Node.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.
PHP
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.
Python
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.
Ruby
Bevor Sie dieses Beispiel testen, folgen Sie der Einrichtungsanleitung für Ruby in der Schnellstart-Anleitung: Clientbibliotheken verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Thema löschen
Die Abos eines Themas werden dadurch nicht gelöscht. Der Nachrichtenrückstand des Abos ist für Abonnenten verfügbar. Nachdem ein Thema gelöscht wurde, haben seine Abos den Themennamen _deleted-topic_
. Wenn Sie versuchen, ein Thema zu erstellen, das denselben Namen wie ein gerade gelöschtes Thema hat, wird dieser Fehler für einen kurzen Zeitraum angezeigt.
Console
Rufen Sie in der Console die Seite Pub/Sub auf.
Wähle ein Thema aus und klicke auf
Weitere Aktionen.Klicken Sie auf Löschen.
Das Fenster Thema löschen wird angezeigt.
Geben Sie
delete
ein und klicken Sie dann auf Löschen.
gcloud
Verwenden Sie den Befehl gcloud pubsub topics delete
, um ein Thema zu löschen:
gcloud pubsub topics delete TOPIC_ID
REST
Verwenden Sie die Methode projects.topics.delete
, um ein Thema zu löschen:
Anfrage:
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
DELETE https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID Authorization: Bearer ACCESS_TOKEN
Dabei gilt:
Lösung:
Wenn die Anfrage erfolgreich ist, ist die Antwort ein leeres JSON-Objekt.
C++
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von C++, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Thema auflisten
Console
Rufen Sie in der Console die Seite Pub/Sub auf.
Auf der Seite Themen werden alle verfügbaren Themen aufgeführt.
gcloud
Sie können Themen mit dem Befehl gcloud pubsub topics list
auflisten:
gcloud pubsub topics list
REST
Zum Auflisten von Themen verwenden Sie die Methode projects.topics.list
:
Anfrage:
Die Anfrage muss mit einem Zugriffstoken im Header Authorization
authentifiziert werden. So rufen Sie ein Zugriffstoken für die aktuellen Standardanmeldedaten für Anwendungen ab: gcloud auth application-default print-access-token
.
GET https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics Authorization: Bearer ACCESS_TOKEN
Dabei gilt:
Lösung:
{ "topics": [ { "name": "projects/PROJECT_ID/topics/mytopic1", ... }, { "name": "projects/PROJECT_ID/topics/mytopic2", ... } ] }
C++
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von C++, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Pub/Sub C++ API-Referenzdokumentation.
C#
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von C#, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub C# API.
Go
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Go, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Go API.
Java
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Java, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Java API.
Node.js
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Node.js, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Node.js API.
PHP
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von PHP, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zur PHP-API von Pub/Sub.
Python
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Python, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Python API.
Ruby
Lesen Sie unter Pub/Sub-Kurzanleitung: Clientbibliotheken verwenden die Anleitung für die Einrichtung von Ruby, bevor Sie dieses Beispiel ausprobieren. Weitere Informationen finden Sie in der Referenzdokumentation zu Pub/Sub Ruby API.
Standardmäßig werden maximal 100 Ergebnisse pro Abfrage zurückgegeben. Mit dem Parameter für die Seitengröße können Sie einen Alternativwert von bis zu 1.000 angeben.
Weitere Informationen
Wählen Sie die Art des Abos für Ihr Thema aus.
Erstellen Sie ein Abo für Ihr Thema.
Erstellen oder ändern Sie ein Thema mit der gcloud-Befehlszeile.
Erstellen oder ändern Sie ein Thema mit REST APIs.