Änderungen mit optionalem Cloud Run-Funktionstrigger an Pub/Sub streamen

In dieser Anleitung wird gezeigt, wie Sie die Vorlage Bigtable-Änderungsstreams für Pub/Sub verwenden, einschließlich der Einrichtung eines Themas und der Konfiguration der Vorlage. Optional können Sie eine Cloud Run-Funktion in der Programmiersprache Ihrer Wahl erstellen, die durch den Ereignisstream ausgelöst wird.

Diese Anleitung richtet sich an technische Nutzer, die mit Bigtable, dem Schreiben von Code und Event-Streaming-Diensten vertraut sind.

Ziele

In dieser Anleitung wird Folgendes beschrieben:

  • Bigtable-Tabelle mit aktiviertem Änderungsstream erstellen
  • Erstellen Sie ein Pub/Sub-Thema mit dem Bigtable-Änderungsstream-Schema.
  • Stellen Sie einen Bigtable-Änderungsstream in einer Pub/Sub-Pipeline in Dataflow mit der Vorlage bereit.
  • Sie können den Ereignisstream direkt in Pub/Sub oder in den Logs einer Cloud Run-Funktion ansehen.

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Cloud de Confiance by S3NS:

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Hinweis

    In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Cloud de Confiance project.

    Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

    Aktivieren Sie Cloud Shell in der Cloud de Confiance Console.

    Cloud Shell aktivieren

    Unten in der Cloud de Confiance 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.

  1. Aktualisieren und installieren Sie die cbt-CLI.
    gcloud components update
    gcloud components install cbt

Pub/Sub-Thema erstellen

  1. Rufen Sie in der Cloud de Confiance Console die Pub/Sub-Seite Themen auf.

    Themen aufrufen

  2. Klicken Sie auf Thema erstellen.

  3. Legen Sie die ID auf bigtable-change-stream-topic fest.

  4. Wählen Sie Schema verwenden aus.

  5. Klicken Sie im Drop-down-Menü Pub/Sub-Schema auswählen auf Neues Schema erstellen. Dadurch wird ein neuer Tab geöffnet, auf dem Sie das Schema definieren können.

    1. Legen Sie die Schema-ID auf bigtable-change-stream-schema fest.
    2. Legen Sie den Schematyp auf Avro fest.
    3. Fügen Sie Folgendes als Schemadefinition ein. Weitere Informationen zum Schema finden Sie auf der Seite mit der Vorlagendokumentation.
      {
          "name" : "ChangelogEntryMessage",
          "type" : "record",
          "namespace" : "com.google.cloud.teleport.bigtable",
          "fields" : [
            { "name" : "rowKey", "type" : "bytes"},
            {
              "name" : "modType",
              "type" : {
                "name": "ModType",
                "type": "enum",
                "symbols": ["SET_CELL", "DELETE_FAMILY", "DELETE_CELLS", "UNKNOWN"]}
            },
            { "name": "isGC", "type": "boolean" },
            { "name": "tieBreaker", "type": "int"},
            { "name": "columnFamily", "type": "string"},
            { "name": "commitTimestamp", "type" : "long"},
            { "name" : "sourceInstance", "type" : "string"},
            { "name" : "sourceCluster", "type" : "string"},
            { "name" : "sourceTable", "type" : "string"},
            { "name": "column", "type" : ["null", "bytes"]},
            { "name": "timestamp", "type" : ["null", "long"]},
            { "name": "timestampFrom", "type" : ["null", "long"]},
            { "name": "timestampTo", "type" : ["null", "long"]},
            { "name" : "value", "type" : ["null", "bytes"]}
        ]
      }
    
    1. Klicken Sie auf Erstellen, um das Schema zu erstellen.
  6. Schließen Sie den Tab Schema erstellen, aktualisieren Sie die Schemaliste und wählen Sie das neu definierte Schema aus.

  7. Klicken Sie auf Erstellen, um das Thema zu erstellen.

Optional: Cloud Run-Funktion erstellen

Möglicherweise möchten Sie den Pub/Sub-Stream mit einer Cloud Run-Funktion verarbeiten.

  1. Klicken Sie auf der Seite Details für das Thema bigtable-change-stream-topic auf Cloud-Funktion auslösen .
  2. Geben Sie im Feld Funktionsname den Namen bt-ps-tutorial-function ein.
  3. Klicken Sie im Bereich Quellcode auf das Drop-down-Menü Laufzeit und wählen Sie dann die gewünschte Laufzeit und Programmiersprache aus. Es wird ein hello world generiert, in dem der Änderungsstream ausgegeben wird, sobald er eingeht. Weitere Informationen zum Schreiben von Cloud Run Functions finden Sie in der Dokumentation.
  4. Übernehmen Sie für die anderen Felder die Standardwerte.
  5. Klicken Sie auf Funktion bereitstellen.

Tabelle mit aktiviertem Änderungsstream erstellen

  1. Rufen Sie in der Cloud de Confiance Console die Bigtable-Seite Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.

    Wenn Sie keine Instanz haben, erstellen Sie eine Instanz mit den Standardkonfigurationen in einer Region in Ihrer Nähe.

  3. Klicken Sie im linken Navigationsbereich auf Sicherungen.

  4. Klicken Sie auf Tabelle erstellen.

  5. Geben Sie der Tabelle den Namen change-streams-pubsub-tutorial.

  6. Fügen Sie eine Spaltenfamilie mit dem Namen cf hinzu.

  7. Wählen Sie Änderungsstream aktivieren aus.

  8. Klicken Sie auf Erstellen.

Datenpipeline zum Erfassen des Änderungsstreams initialisieren

  1. Suchen Sie auf der Bigtable-Seite Tabellen nach Ihrer Tabelle change-streams-pubsub-tutorial.
  2. Klicken Sie in der Spalte Stream ändern auf Verbinden.
  3. Wählen Sie im Dialogfeld Pub/Sub aus.
  4. Klicken Sie auf Dataflow-Job erstellen.
  5. Legen Sie auf der Dataflow-Seite Job erstellen den Namen des Pub/Sub-Ausgabethemas auf bigtable-change-stream-topic fest.
  6. Legen Sie die Bigtable-Anwendungsprofil-ID auf default fest.
  7. Klicken Sie auf Job ausführen.
  8. Warten Sie, bis der Jobstatus Wird gestartet oder Wird ausgeführt lautet, bevor Sie fortfahren. Sobald der Job in die Warteschlange eingereiht wurde, dauert es etwa 5 Minuten.

Daten in Bigtable schreiben

  1. Schreiben Sie in Cloud Shell einige Zeilen in Bigtable, damit das Änderungsprotokoll einige Daten in den Pub/Sub-Stream schreiben kann. Solange Sie die Daten nach dem Erstellen des Jobs schreiben, werden die Änderungen angezeigt. Sie müssen nicht warten, bis der Jobstatus running lautet.

    cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \
        set change-streams-pubsub-tutorial user123 cf:col1=abc
    cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \
        set change-streams-pubsub-tutorial user546 cf:col1=def
    cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \
        set change-streams-pubsub-tutorial user789 cf:col1=ghi
    

Änderungsprotokolle in Pub/Sub ansehen

  1. Rufen Sie in der Cloud de Confiance Console die Seite „Pub/Sub“ → Abos auf.

    Zu den Abos

  2. Klicken Sie auf das automatisch erstellte Abo für Ihr Thema bigtable-change-stream-topic. Er sollte bigtable-change-stream-topic-sub heißen.

  3. Rufen Sie den Tab Nachrichten auf.

  4. Klicken Sie auf Pull.

  5. Sehen Sie sich die Liste der Nachrichten an und rufen Sie die von Ihnen geschriebenen Daten auf.

    Änderungsprotokollnachrichten in Pub/Sub

Optional: Änderungen in den Cloud Run Functions-Logs ansehen

Wenn Sie eine Cloud Run-Funktion erstellt haben, können Sie die Änderungen in den Logs ansehen.

  1. Wechseln Sie in der Cloud de Confiance -Console zu Cloud Run-Funktionen.

    Zu den Cloud Run-Funktionen

  2. Klicken Sie auf Ihre Funktion bt-ps-tutorial-function.

  3. Rufen Sie den Tab Logs auf.

  4. Achten Sie darauf, dass Severity auf mindestens Info festgelegt ist, damit Sie die Protokolle sehen können.

  5. Sehen Sie sich die Logs an und rufen Sie die von Ihnen geschriebenen Daten auf.

Die Ausgabe sieht dann ungefähr so aus:

Pub/Sub message: {"rowKey":"user789","modType":"SET_CELL","isGC":false,"tieBreaker":0,"columnFamily":"cf","commitTimestamp":1695653833064548,"sourceInstance":"YOUR-INSTANCE","sourceCluster":"YOUR-INSTANCE-c1","sourceTable":"change-streams-pubsub-tutorial","column":{"bytes":"col1"},"timestamp":{"long":1695653832278000},"timestampFrom":null,"timestampTo":null,"value":{"bytes":"ghi"}}

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Bigtable-Tabelle löschen

  1. Rufen Sie in der Cloud de Confiance Console die Bigtable-Seite Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf die ID der Instanz, die Sie für diese Anleitung verwenden.

  3. Klicken Sie im linken Navigationsbereich auf Sicherungen.

  4. Suchen Sie die Tabelle change-streams-pubsub-tutorial.

  5. Klicken Sie auf Bearbeiten.

  6. Entfernen Sie das Häkchen von Änderungsstream aktivieren.

  7. Klicken Sie auf Speichern.

  8. Öffnen Sie das Dreipunkt-Menü für die Tabelle.

  9. Klicken Sie auf Löschen und geben Sie den Tabellennamen zur Bestätigung ein.

Pipeline für Änderungsstream beenden

  1. Rufen Sie in der Cloud de Confiance Console die Dataflow-Seite Jobs auf.

    Zu Jobs

  2. Wählen Sie den Streaming-Job aus der Jobliste aus.

  3. Klicken Sie im Navigationsbereich auf Beenden.

  4. Brechen Sie im Dialogfeld Job anhalten Ihre Pipeline ab und klicken Sie dann auf Job anhalten.

Pub/Sub-Thema und -Abo löschen

  1. Rufen Sie in der Cloud de Confiance Console die Pub/Sub-Seite Themen auf.

    Themen aufrufen

  2. Wählen Sie das Thema bigtable-change-stream-topic aus.

  3. Klicken Sie auf Löschen und bestätigen Sie den Vorgang.

  4. Klicken Sie in der Seitenleiste auf Abos.

  5. Wählen Sie das bigtable-change-stream-topic-sub-Abo aus.

  6. Klicken Sie auf Löschen und bestätigen Sie den Vorgang.

Cloud Run-Funktion löschen

  1. Wechseln Sie in der Cloud de Confiance -Console zu Cloud Run-Funktionen.

    Zu den Cloud Run-Funktionen

  2. Wählen Sie die Funktion bt-ps-tutorial-function aus.

  3. Klicken Sie auf Löschen und bestätigen Sie den Vorgang.

Nächste Schritte