In diesem Dokument wird beschrieben, wie Sie eine Single Message Transform (SMT) für ein Pub/Sub-Thema aktualisieren. Änderungen an SMTs werden innerhalb weniger Minuten wirksam. Bei SMTs für Themen gelten die Änderungen für neue Nachrichten, die nach der Aktualisierung des SMT veröffentlicht werden.
Sie können die SMTs für Themen über die Google Cloud Console, die Google Cloud CLI, die Clientbibliothek oder die Pub/Sub API aktualisieren.
Erforderliche Rollen und Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Pub/Sub-Bearbeiter (roles/pubsub.editor) für das Projekt zuzuweisen, um die Berechtigung zum Aktualisieren von SMTs für Themen zu erhalten.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die Berechtigung pubsub.topics.update, die zum Aktualisieren von SMTs für Themen erforderlich ist.
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Sie können die Zugriffssteuerung auf Projektebene und auf der Ebene einzelner Ressourcen konfigurieren.
SMTs für Themen aktualisieren
So aktualisieren Sie die SMTs für Themen:
Console
Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Themen auf.
-
Klicken Sie auf das Thema, für das Sie SMTs bearbeiten möchten.
Klicken Sie auf der Themendetailseite auf Bearbeiten.
Auf dem Tab Transformationen werden alle SMTs aufgelistet, die dem Thema zugeordnet sind.
-
Auf der Seite „Thema bearbeiten“ haben Sie folgende Möglichkeiten:
-
Fügen Sie ein neues SMT hinzu. Klicken Sie auf Transformation hinzufügen.
-
Vorhandenes SMT bearbeiten Maximieren Sie eine beliebige SMT, um sie zu bearbeiten.
-
Ordnen Sie die SMTs neu an. Verwenden Sie die Auf- und Abwärtspfeile.
-
SMT löschen Klicken Sie auf die Schaltfläche „Löschen“.
-
-
Klicken Sie auf Aktualisieren.
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 updateaus:gcloud pubsub topics update TOPIC_ID \ --message-transforms-file=TRANSFORMS_FILE
Ersetzen Sie Folgendes:
-
TOPIC_ID: Die ID oder der Name des Themas, das Sie aktualisieren möchten.
-
TRANSFORMS_FILE: Der Pfad zur YAML- oder JSON-Datei, die die aktualisierten SMTs enthält.
Nachfolgend ein Beispiel für eine YAML-Datei mit Transformationen:
- javascriptUdf: code: > function redactSSN(message, metadata) { const data = JSON.parse(message.data); delete data['ssn']; message.data = JSON.stringify(data); return message; } functionName: redactSSN - javascriptUdf: code: > function filterHighAmount(message, metadata) { const data = JSON.parse(message.data); if (data['amount'] > 100 ) { return null; } return message; } functionName: filterHighAmount
Verwenden Sie den folgenden Befehl, um alle SMTs aus dem Thema zu entfernen:
gcloud pubsub topics update TOPIC_ID --clear-message-transforms
Ersetzen Sie TOPIC_ID durch die ID oder den Namen des Themas, das Sie aktualisieren möchten.
-