In Pub/Sub ist ein Thema eine benannte Ressource, die einen Feed von Nachrichten darstellt. Sie müssen ein Thema erstellen, bevor Sie es veröffentlichen oder abonnieren können. Pub/Sub unterstützt zwei Arten von Themen: ein Standardthema und ein Importthema.
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 mit der Google Cloud Console, der Google Cloud CLI, der Clientbibliothek oder der Pub/Sub API erstellen.
Hinweis
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:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Erstellen eines Themas erforderlich:
-
Gewähren 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 Projekt- und auf Ressourcenebene konfigurieren. Sie können ein Abo in einem Projekt erstellen und es an ein Thema in einem anderen Projekt anhängen. 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 Datenfeld der Nachricht entsprechen muss. Ein Schema ist ein Vertrag zwischen dem Publisher und dem Abonnenten, der von Pub/Sub erzwungen wird. Themenschemas tragen dazu bei, Nachrichtentypen und Berechtigungen zu standardisieren, damit sie von verschiedenen Teams in Ihrer Organisation verwendet werden können. Pub/Sub schafft eine zentrale Autorität für Nachrichtentypen und Berechtigungen. Informationen zum Erstellen eines Themas mit Schema finden Sie unter Schema – Übersicht.
Aufnahme aktivieren
Wenn Sie diese Property aktivieren, können Sie Streamingdaten aus externen Quellen in ein Thema aufnehmen, um die Funktionen von Google Cloudzu nutzen. So erstellen Sie ein Importthema für die Aufnahme:
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 „Seek“ noch einmal abspielen und bereinigen.
Speicherkosten für die vom Thema aufbewahrten Nachrichten werden dem Projekt des Themas in Rechnung gestellt. Nach Ablauf des Aufbewahrungszeitraums für Nachrichten 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: Die Anzahl der aufbewahrten Nachrichtentopic/oldest_retained_message_age: Das Alter der ältesten aufbewahrten Nachrichttopic/retained_bytes: Die Gesamtgröße der beibehaltenen Nachrichten in Byte
Daten der Exportnachricht an BigQuery
Wenn Sie diese Property 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 empfangene Nachrichten 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 Themen-SMTs lassen sich Nachrichtendaten und ‑attribute direkt in Pub/Sub einfach ändern. Mit dieser Funktion können Daten bereinigt, gefiltert oder in ein anderes Format konvertiert werden, bevor die Nachrichten für das Thema veröffentlicht werden.
Weitere Informationen zu SMTs finden Sie in der Übersicht zu SMTs.
Google-owned and Google-managed encryption key
Gibt an, dass das Thema mitGoogle-owned and Google-managed encryption keysverschlüsselt ist. Pub/Sub verschlüsselt Nachrichten standardmäßig mit Google-owned and Google-managed encryption keys . Wenn Sie diese Option auswählen, wird das Standardverhalten beibehalten. Google übernimmt die Schlüsselverwaltung und ‑rotation automatisch, damit 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 keysfinden 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 ist. Pub/Sub verschlüsselt Nachrichten standardmäßig mit Google-owned and Google-managed encryption keys . Wenn Sie diese Option angeben, verwendet Pub/Sub das Muster der Umschlagverschlüsselung mit CMEK. Bei diesem Ansatz werden die Nachrichten nicht von Cloud KMS verschlüsselt. Stattdessen verschlüsselt Cloud KMS die Datenschlüssel (Data Encryption Keys, DEKs), die Pub/Sub für jedes Thema erstellt. Pub/Sub verschlüsselt die Nachrichten mit dem neuesten DEK, das für das Thema generiert wurde. Pub/Sub entschlüsselt die Nachrichten kurz bevor sie an Abonnenten zugestellt werden. Weitere Informationen zum Erstellen eines Schlüssels finden Sie unter Nachrichtenverschlüsselung konfigurieren.
Thema erstellen
Sie müssen ein Thema erstellen, bevor Sie es veröffentlichen oder abonnieren können.
Console
So erstellen Sie ein Thema:
Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Thema erstellen 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 für das 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 Enable ingestion (Aufnahme aktivieren) deaktiviert.
Optional. Wenn Sie Nachrichten nach der Veröffentlichung beibehalten möchten, wählen Sie Nachrichtenaufbewahrung aktivieren aus. Wählen Sie den Aufbewahrungszeitraum 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 Befehl
gcloud pubsub topics createaus, um ein Thema zu erstellen:gcloud pubsub topics create TOPIC_ID
REST
Verwenden Sie zum Erstellen eines Themas die Methode projects.topics.create:
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 Ihre 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 (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.
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 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
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 Anleitung zur Einrichtung von Ruby in der Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Pub/Sub Ruby API.
Rust
Bevor Sie dieses Beispiel ausprobieren, folgen Sie der Einrichtungsanleitung für Rust in der Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Pub/Sub Rust API-Referenzdokumentation.
Einschränkungen für Organisationsrichtlinien
Organisationsrichtlinien können das Erstellen von Themen einschränken. So kann beispielsweise eine Richtlinie die Speicherung von Nachrichten in einer Compute Engine-Region einschränken. Um Fehler beim Erstellen von Themen zu vermeiden, sollten Sie die Organisationsrichtlinien prüfen und bei Bedarf aktualisieren, 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 Nachrichtenspeicherung konfigurieren.
Nächste Schritte
Wählen Sie den Abotyp für Ihr Thema aus.
Informationen zum Veröffentlichen einer Nachricht in einem Thema
Thema auswählen und Fehlerbehebung starten
Erstellen oder ändern Sie ein Thema mit der gcloud CLI, den REST APIs oder den Clientbibliotheken.