In diesem Dokument wird beschrieben, wie Sie eine Single Message Transformation (SMT) für ein Pub/Sub-Abo aktualisieren. Änderungen an SMTs werden innerhalb weniger Minuten wirksam. Bei SMTs für Abos werden die Änderungen für neue Nachrichten wirksam, die nach der Aktualisierung der UDF an das Abo gesendet werden.
Sie können die SMTs für Abos ü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 Ihr Projekt zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Aktualisieren von SMTs für Abos 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 Aktualisieren von SMTs für Abonnements erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind zum Aktualisieren von SMTs für Abos erforderlich:
-
Gewähren Sie die Berechtigung zum Aktualisieren eines Abos für das Abo:
projects.subscriptions.patch
-
Erteilen Sie der Ansicht eine Abo-Berechtigung für das Projekt. Diese Berechtigung ist nur erforderlich, wenn Sie die Google Cloud Console verwenden:
pubsub.subscriptions.view
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.
SMTs für Abos aktualisieren
So aktualisieren Sie die SMTs für Abos:
Console
-
Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Abos auf.
-
Klicken Sie auf das Abo, für das Sie SMTs bearbeiten möchten.
-
Klicken Sie auf der Seite mit den Abodetails auf Bearbeiten.
Auf dem Tab Transforms (Transformationen) werden alle SMTs aufgeführt, die mit dem Abo verknüpft sind.
-
Auf der Seite „Abo 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
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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.
-
Führen Sie den Befehl
gcloud pubsub subscriptions update
aus:gcloud pubsub subscriptions update SUBSCRIPTION_ID \ --message-transforms-file=TRANSFORMS_FILE
Ersetzen Sie Folgendes:
-
SUBSCRIPTION_ID: Die ID oder der Name des Abos, 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 Abo zu entfernen:
gcloud pubsub subscriptions update SUBSCRIPTION_ID --clear-message-transforms
Ersetzen Sie SUBSCRIPTION_ID durch die ID oder den Namen des Abos, das Sie aktualisieren möchten.
-