In Pub/Sub ist ein Thema eine benannte Ressource, die einen Feed von Nachrichten darstellt. Sie müssen ein Thema erstellen, bevor Sie Nachrichten veröffentlichen oder es abonnieren können. Pub/Sub unterstützt zwei Arten von Themen: Standardthemen und Importthemen.
In diesem Dokument wird beschrieben, wie Sie ein Pub/Sub-Standardthema erstellen. Weitere Informationen zu Importthemen und zum Erstellen von Importthemen finden Sie unter Importthemen.
Sie können ein Thema über die Google Cloud Console, die Google Cloud CLI, die Clientbibliothek oder die Pub/Sub API erstellen.
Hinweis
Informationen zu dem Pub/Sub-Dienst und zur Terminologie.
Informationen zum Veröffentlichungsprozess
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle „Pub/Sub-Bearbeiter“ (roles/pubsub.editor) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Themas benötigen.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigungen, die zum Erstellen eines Themas erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen eines Themas erforderlich:
-
Erteilen Sie diese Berechtigung, um ein Thema für das Projekt zu erstellen:
pubsub.topics.create
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie können die Zugriffssteuerung auf Projektebene und auf der Ebene einzelner Ressourcen konfigurieren. Sie können ein Abo in einem Projekt erstellen und es an ein Thema anhängen, das sich in einem anderen Projekt befindet. Prüfen Sie, ob Sie die erforderlichen Berechtigungen für jedes Projekt haben.
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 die folgenden Eigenschaften:
- Abo-ID von
-sub - Pull-Zustellungstyp
- Nachrichtenaufbewahrung für sieben Tage
- Ablauf nach 31 Tagen Inaktivität
- Bestätigungsfrist von 10 Sekunden
- Richtlinie für sofortige Wiederholung
Schema verwenden
Ein Schema ist ein Format, dem das Feld für Nachrichtendaten entsprechen muss. Ein Schema ist ein Vertrag zwischen dem Publisher und dem Abonnenten, den Pub/Sub erzwingt. Themenschemas tragen dazu bei, Nachrichtentypen und Berechtigungen zu standardisieren, damit sie von verschiedenen Teams in Ihrer Organisation verwendet werden können. Pub/Sub erstellt eine zentrale Autorität für Nachrichtentypen und Berechtigungen. Informationen zum Erstellen eines Themas mit einem Schema finden Sie unter Schemaübersicht.
Aufnahme aktivieren
Wenn Sie diese Eigenschaft aktivieren, können Sie Streamingdaten aus externen Quellen in ein Thema aufnehmen, um die Funktionen von Google Cloudzu nutzen. Informationen zum Erstellen eines Importthemas für die Aufnahme finden Sie unter:
Aufbewahrung von Themennachrichten aktivieren
Standardmäßig verwirft ein Pub/Sub-Thema Nachrichten, sobald sie von allen mit dem Thema verknüpften Abos bestätigt wurden. Optional können Sie ein Thema so konfigurieren, dass Nachrichten bis zu 31 Tage lang aufbewahrt werden. Die Mindestaufbewahrungsdauer beträgt 10 Minuten.
Mit der Nachrichtenaufbewahrung können Abos zuvor bestätigte Nachrichten oder Nachrichten wiedergeben, die veröffentlicht wurden, bevor Sie das Abo erstellt haben. Weitere Informationen finden Sie unter Nachrichten mit „Suchen“ wiedergeben und löschen.
Die Speicherkosten für die vom Thema aufbewahrten Nachrichten werden dem Projekt des Themas in Rechnung gestellt. Nach Ablauf der Aufbewahrungsdauer der Nachricht kann Pub/Sub die Nachricht unabhängig vom Bestätigungsstatus verwerfen.
Wenn Sie Messwerte zu aufbewahrten Nachrichten aufrufen möchten, verwenden Sie die folgenden Cloud Monitoring-Messwerte:
topic/num_retained_messages: Anzahl der aufbewahrten Nachrichtentopic/oldest_retained_message_age: Alter der ältesten aufbewahrten Nachrichttopic/retained_bytes: Gesamtgröße der aufbewahrten Nachrichten in Byte
Daten der Exportnachricht an BigQuery
Wenn Sie diese Eigenschaft aktivieren, können Sie ein BigQuery-Abo erstellen, das Nachrichten beim Empfang in eine vorhandene BigQuery-Tabelle schreibt. Sie müssen keinen separaten Abonnentenclient konfigurieren. Weitere Informationen zu BigQuery-Abos finden Sie unter BigQuery-Abos.
Nachrichtendaten in Cloud Storage sichern
Wenn Sie diese Eigenschaft aktivieren, können Sie ein Cloud Storage-Abo erstellen, das Nachrichten beim Empfang in eine vorhandene Cloud Storage-Tabelle schreibt. Sie müssen keinen separaten Abonnentenclient konfigurieren. Weitere Informationen zu Cloud Storage-Abos finden Sie unter Cloud Storage-Abos.
Transformationen
Mit SMTs für Themen können Sie direkt in Pub/Sub einfache Änderungen an Nachrichtendaten und -attributen vornehmen. Mit dieser Funktion können Sie Daten bereinigen, filtern oder das Format konvertieren, bevor die Nachrichten im Thema veröffentlicht werden.
Weitere Informationen zu SMTs finden Sie unter SMTs – Übersicht.
Google-owned and Google-managed encryption key
Gibt an, dass das Thema mit Google-owned and Google-managed encryption keysverschlüsselt wird. Pub/Sub verschlüsselt Nachrichten mit Google-owned and Google-managed encryption keys standardmäßig. Wenn Sie diese Option auswählen, bleibt das Standardverhalten erhalten. Google übernimmt die Schlüsselverwaltung und -rotation automatisch, sodass Ihre Nachrichten immer mit der stärksten verfügbaren Verschlüsselung geschützt sind. Für diese Option ist keine weitere Konfiguration erforderlich. Weitere Informationen zu Google-owned and Google-managed encryption keys, finden Sie unter Standardverschlüsselung mit Google-owned and Google-managed encryption keys.
Cloud KMS-Schlüssel
Gibt an, ob das Thema mit einem vom Kunden verwalteten Verschlüsselungsschlüssel (CMEK) verschlüsselt wird. Pub/Sub verschlüsselt Nachrichten standardmäßig mit Google-owned and Google-managed encryption keys . Wenn Sie diese Option angeben, verwendet Pub/Sub das Envelope-Verschlüsselungsmuster mit CMEK. Bei diesem Ansatz werden die Nachrichten nicht von Cloud KMS verschlüsselt. Stattdessen verschlüsselt Cloud KMS die Data Encryption Keys (DEKs), die von Pub/Sub für jedes Thema erstellt wurden. 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 Abonnenten. Weitere Informationen zum Erstellen eines Schlüssels finden Sie unter Nachrichtenverschlüsselung konfigurieren.
Thema erstellen
Sie müssen ein Thema erstellen, bevor Sie Nachrichten veröffentlichen oder es abonnieren können.
Console
So erstellen Sie ein Thema:
Rufen Sie in der Google Cloud Console die Seite Thema erstellen von Pub/Sub auf.
Geben Sie im Feld Themen-ID eine ID für das Thema ein. Weitere Informationen zum Benennen von Themen finden Sie in den Benennungsrichtlinien.
Wenn Sie ein Standardabo für das Thema erstellen möchten, wählen Sie Standardabo hinzufügen aus. Diese Option ist standardmäßig aktiviert.
Optional. Wenn Sie ein Schema mit dem Thema verwenden möchten, klicken Sie auf Schema verwenden und geben Sie das Schema an. Weitere Informationen finden Sie unter Schema erstellen und zuordnen, wenn Sie ein Thema erstellen.
Lassen Sie für ein Standardthema die Option Aufnahme aktivieren deaktiviert.
Optional. Wenn Sie Nachrichten nach der Veröffentlichung aufbewahren möchten, wählen Sie Nachrichtenaufbewahrung aktivieren aus. Wählen Sie die Aufbewahrungsdauer in Tagen, Stunden und Minuten aus. Weitere Informationen finden Sie unter Nachrichtenaufbewahrung aktivieren.
Optional. Wenn Sie veröffentlichte Nachrichten in eine BigQuery-Tabelle exportieren möchten, wählen Sie Daten in BigQuery exportieren aus und geben Sie die Details für die Tabelle ein. Weitere Informationen finden Sie unter BigQuery-Abos erstellen.
Optional. Wenn Sie veröffentlichte Nachrichten in einem Cloud Storage-Bucket sichern möchten, wählen Sie Nachrichtendaten in Cloud Storage sichern aus und geben Sie die Details für den Cloud Storage-Bucket ein. Weitere Informationen finden Sie unter Cloud Storage-Abos erstellen.
Optional. Fügen Sie unter Transformationen eine oder mehrere Single Message Transforms (SMTs) hinzu, um Nachrichtendaten zu bearbeiten und zu filtern. Weitere Informationen finden Sie unter Thema mit SMTs erstellen.
Optional. Wenn Sie einen kundenverwalteten Verschlüsselungsschlüssel (CMEK) zum Verschlüsseln von Nachrichten verwenden möchten, wählen Sie Cloud KMS-Schlüssel aus. Standardmäßig verwendet Pub/Sub die Standardverschlüsselung von Google, für die kein CMEK erforderlich ist. Weitere Informationen finden Sie unter Nachrichtenverschlüsselung konfigurieren.
Optional. Wenn Sie die mit dem Thema verknüpften Schlüssel verwalten möchten, klicken Sie auf Schlüssel verwalten. Weitere Informationen finden Sie unter Tags – Übersicht.
Klicken Sie auf Thema erstellen.
gcloud
-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud 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.
Führen Sie den
gcloud pubsub topics createBefehl aus, um ein Thema zu erstellen:gcloud pubsub topics create TOPIC_ID
REST
Verwenden Sie die
projects.topics.create
Methode:
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
Wobei:
- PROJECT_ID ist die Projekt-ID.
- TOPIC_ID ist die Themen-ID.
Response:
{
"name": "projects/PROJECT_ID/topics/TOPIC_ID"
}
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.
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
Im folgenden Beispiel wird die Hauptversion der Go Pub/Sub-Clientbibliothek (Version 2) verwendet. Wenn Sie noch die Version 1 verwenden, finden Sie weitere Informationen im Migrationsleitfaden zu Version 2. Eine Liste mit Codebeispielen für Version 1 finden Sie unter Veraltete 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 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.
Node.ts
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.
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
Im folgenden Beispiel wird die Ruby Pub/Sub-Clientbibliothek Version 3 verwendet. Wenn Sie noch die Version 2 verwenden, finden Sie weitere Informationen im Migrationsleitfaden zu Version 3. Eine Liste mit Codebeispielen für Ruby Version 2 finden Sie unter Veraltete Codebeispiele.
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.
Einschränkungen für Organisationsrichtlinien
Organisationsrichtlinien können die Erstellung von Themen einschränken. So kann eine Richtlinie beispielsweise die Speicherung von Nachrichten in einer Compute Engine-Region einschränken. Um Fehler bei der Themenerstellung zu vermeiden, prüfen und aktualisieren Sie die Organisationsrichtlinien nach Bedarf, bevor Sie ein Thema erstellen.
Wenn Ihr Projekt neu erstellt wurde, warten Sie einige Minuten, bis die Organisationsrichtlinie initialisiert wurde, bevor Sie ein Thema erstellen.
Zu den Organisationsrichtlinien
Weitere Informationen finden Sie unter Richtlinien für die Speicherung von Nachrichten konfigurieren.
Nächste Schritte
Wählen Sie den Abotyp für Ihr Thema aus.
Informationen zum Veröffentlichen einer Nachricht in einem Thema.
Fehlerbehebung bei einem Thema.
Thema mit der gcloud CLI, REST APIs, oder Client libraries erstellen oder ändern.