SMTs für Abos aktualisieren

In diesem Dokument wird beschrieben, wie Sie eine einzelne Nachrichtentransformation (Single Message Transform, 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 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, um die Berechtigungen zu 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 Abos erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um SMTs für Abos zu aktualisieren:

  • Erteilen Sie die Berechtigung zum Aktualisieren eines Abos für das Abo: projects.subscriptions.patch
  • Erteilen Sie die Berechtigung zum Aufrufen eines Abos für das Projekt. Diese Berechtigung ist nur erforderlich, wenn Sie die Google Cloud Console: pubsub.subscriptions.view

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.

SMTs für Abos aktualisieren

So aktualisieren Sie SMTs für Abos:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Abos auf.

    Zu den Abos

  2. Klicken Sie auf das Abo, für das Sie SMTs bearbeiten möchten.

  3. Klicken Sie auf der Seite mit den Abo-Details auf Bearbeiten.

    Auf dem Tab Transformationen sind alle SMTs aufgeführt, die an das Abo angehängt sind.

  4. Auf der Seite „Abo bearbeiten“ können Sie folgende Aufgaben ausführen:

    1. Neue SMT hinzufügen Klicken Sie auf Transformation hinzufügen.

    2. Vorhandene SMT bearbeiten Maximieren Sie eine SMT, um sie zu bearbeiten.

    3. SMTs neu anordnen Verwenden Sie die Pfeile nach oben und unten.

    4. SMT löschen Klicken Sie auf die Schaltfläche „Löschen“.

  5. Klicken Sie auf Aktualisieren.

gcloud

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    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.

  2. Führen Sie den gcloud pubsub subscriptions updateBefehl 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 mit den aktualisierten SMTs.

      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.

Nächste Schritte