Diffuser les modifications vers Pub/Sub à l'aide du déclencheur de fonction Cloud Run facultatif


Ce tutoriel explique comment utiliser les flux de modifications Bigtable pour modèle Pub/Sub, y compris comment configurer un sujet et modèle. Vous pouvez éventuellement créer une fonction Cloud Run dans le langage de programmation de votre choix, qui est déclenché par le flux d'événements.

Ce tutoriel s'adresse aux utilisateurs techniques qui connaissent Bigtable, écrire du code et diffuser des événements.

Objectifs

Ce tutoriel vous explique comment effectuer les opérations suivantes:

  • Créer une table Bigtable avec un flux de modifications activé
  • Créer un sujet Pub/Sub avec le flux de modifications Bigtable du schéma.
  • Déployer un flux de modifications Bigtable dans un pipeline Pub/Sub Dataflow à l'aide du modèle.
  • Afficher le flux d'événements dans Pub/Sub directement ou dans les journaux d'une fonction Cloud Run.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.

    Enable the APIs

  8. In the Google Cloud console, activate Cloud Shell.

    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.

  9. Mettez à jour et installez CLI cbt pour en savoir plus.
    gcloud components update
    gcloud components install cbt

Créer un sujet Pub/Sub

  1. Dans la console Google Cloud, accédez à la page Sujets de Pub/Sub. .

    Accéder aux sujets

  2. Cliquez sur Create topic (Créer un sujet).

  3. Définissez bigtable-change-stream-topic comme ID.

  4. Sélectionnez Utiliser un schéma.

  5. Dans la liste déroulante Sélectionner un schéma Pub/Sub, cliquez sur Créer. nouveau schéma. Un nouvel onglet s'ouvre et vous permet de définir le schéma.

    1. Définissez l'ID de schéma sur bigtable-change-stream-schema.
    2. Définissez le type de schéma sur Avro.
    3. Collez le code suivant en tant que définition de schéma. En savoir plus sur le est disponible dans la documentation sur les modèles .
      {
          "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. Cliquez sur Créer pour créer le schéma.
  6. Fermez l'onglet Créer un schéma, actualisez la liste des schémas, puis sélectionnez votre schéma nouvellement défini.

  7. Cliquez sur Créer pour créer le sujet.

Facultatif: Créer une fonction Cloud Run

Vous voudrez peut-être traiter le flux Pub/Sub avec un fonction Cloud Run.

  1. Sur la page Détails du sujet bigtable-change-stream-topic, cliquez sur Déclencher une fonction Cloud
  2. Dans le champ Nom de la fonction, saisissez le nom bt-ps-tutorial-function.
  3. Dans la section Code source, cliquez sur la liste déroulante Environnement d'exécution, puis sélectionnez l'environnement d'exécution et le langage de programmation de votre choix. Un hello world est généré, qui imprime le flux de modifications à mesure qu'il arrive. Consultez le pour en savoir plus sur l'écriture de fonctions Cloud Run.
  4. Utilisez les valeurs par défaut pour tous les autres champs.
  5. Cliquez sur Déployer la fonction.

Créer une table avec un flux de modifications activé

  1. Dans la console Google Cloud, accédez à Bigtable Instances.

    Accéder à la page "Instances"

  2. Cliquez sur l'ID de l'instance que vous utilisez pour ce tutoriel.

    Si vous n'avez pas d'instance disponible, créez un par défaut avec les configurations par défaut dans une région près de chez vous.

  3. Dans le volet de navigation de gauche, cliquez sur Tables.

  4. Cliquez sur Créer une table.

  5. Nommez la table change-streams-pubsub-tutorial.

  6. Ajoutez une famille de colonnes nommée cf.

  7. Sélectionnez Activer le flux de modifications.

  8. Cliquez sur Créer.

Initialiser un pipeline de données pour capturer le flux de modifications

  1. Sur la page Tables de Bigtable, trouvez votre table. change-streams-pubsub-tutorial
  2. Dans la colonne Flux de modifications, cliquez sur Se connecter.
  3. Dans la boîte de dialogue, sélectionnez Pub/Sub.
  4. Cliquez sur Créer un job Dataflow.
  5. Sur la page Dataflow Create job (Créer un job), définissez la sortie Nom du sujet Pub/Sub remplacé par bigtable-change-stream-topic.
  6. Définissez l'ID de profil d'application Bigtable sur default.
  7. Cliquez sur Run Job (Exécuter la tâche).
  8. Attendez que l'état de la tâche affiche Démarrage ou En cours d'exécution avant de continuer. L'opération prend environ cinq minutes une fois la tâche mise en file d'attente.

Écrire des données dans Bigtable

  1. Dans Cloud Shell, écrivez quelques lignes dans Bigtable afin que le journal des modifications puisse écrire des données dans le flux Pub/Sub. Tant que à mesure que vous écrivez les données après la création du job, les modifications apparaissent. Toi n'avez pas besoin d'attendre que l'état du job passe à running.

    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
    

Afficher les journaux des modifications dans Pub/Sub

  1. Dans la console Google Cloud, accédez à la page Abonnements de Pub/Sub.

    Accéder aux abonnements

  2. Cliquez sur l'abonnement créé automatiquement pour votre sujet bigtable-change-stream-topic. Il doit être nommé bigtable-change-stream-topic-sub.

  3. Accédez à l'onglet Messages.

  4. Cliquez sur Extraire.

  5. Parcourez la liste des messages et affichez les données que vous avez écrites.

    Messages du journal des modifications dans
Pub/Sub

Facultatif: Afficher les modifications dans les journaux des fonctions Cloud Run

Si vous avez créé une fonction Cloud Run, vous pouvez afficher les modifications dans les journaux.

  1. Dans la console Google Cloud, accédez à la page Fonctions Cloud Run.

    Accéder aux fonctions Cloud Run

  2. Cliquez sur votre fonction bt-ps-tutorial-function.

  3. Accédez à l'onglet Journaux.

  4. Assurez-vous que le paramètre Gravité est défini au moins sur Informations pour que les journaux.

  5. Explorez les journaux et affichez les données que vous avez écrites.

La sortie ressemble à ceci :

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"}}

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.

Supprimer la table Bigtable

  1. Dans la console Google Cloud, accédez à la page Instances de Bigtable.

    Accéder à la page "Instances"

  2. Cliquez sur l'ID de l'instance que vous utilisez pour ce tutoriel.

  3. Dans le volet de navigation de gauche, cliquez sur Tables.

  4. Recherchez la table change-streams-pubsub-tutorial.

  5. Cliquez sur Modifier.

  6. Décochez la case Activer le flux de modifications.

  7. Cliquez sur Enregistrer.

  8. Ouvrez le menu à développer du tableau.

  9. Cliquez sur Supprimer et saisissez le nom de la table pour confirmer.

Arrêter le pipeline du flux de modifications

  1. Dans la console Google Cloud, accédez à la page Tâches de Dataflow.

    Accéder aux tâches

  2. Sélectionnez votre tâche de traitement par flux dans la liste des tâches.

  3. Dans la barre de navigation, cliquez sur Arrêter.

  4. Dans la boîte de dialogue Stop job (Arrêter le job), annulez votre pipeline, puis cliquez sur Stop (Arrêter). job.

Supprimer le sujet et l'abonnement Pub/Sub

  1. Dans la console Google Cloud, accédez à la page Sujets de Pub/Sub. .

    Accéder aux sujets

  2. Sélectionnez le sujet bigtable-change-stream-topic.

  3. Cliquez sur Supprimer, puis confirmez la suppression.

  4. Cliquez sur Abonnements dans la barre latérale.

  5. Sélectionnez l'abonnement bigtable-change-stream-topic-sub.

  6. Cliquez sur Supprimer, puis confirmez la suppression.

Supprimer la fonction Cloud Run

  1. Dans la console Google Cloud, accédez à la page Fonctions Cloud Run.

    Accéder aux fonctions Cloud Run

  2. Sélectionnez la fonction bt-ps-tutorial-function.

  3. Cliquez sur Supprimer, puis confirmez la suppression.

Étape suivante