Transmite cambios a Pub/Sub con el activador opcional de funciones de Cloud Run

En este instructivo, se muestra cómo usar la plantilla Bigtable flujos de cambios to Pub/Sub, incluida la configuración de un tema y de la plantilla. De manera opcional, puedes crear una función de Cloud Run en el lenguaje de programación que elijas y que se active con el flujo de eventos.

Este instructivo está dirigido a usuarios técnicos que conocen Bigtable, la escritura de código y los servicios de transmisión de eventos.

Objetivos

En este instructivo, se muestra cómo realizar lo siguiente:

  • Crea una tabla de Bigtable con un flujo de cambios habilitado.
  • Crea un tema de Pub/Sub con el esquema del flujo de cambios de Bigtable.
  • Implementa un flujo de cambios de Bigtable en una canalización de Pub/Sub en Dataflow con la plantilla.
  • Visualiza el flujo de eventos directamente en Pub/Sub o en los registros de una función de Cloud Run.

Costos

En este documento, usarás los siguientes componentes facturables de Cloud de Confiance by S3NS:

Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.

Antes de comenzar

    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

    En la consola de Cloud de Confiance , activa Cloud Shell.

    Activa Cloud Shell

    En la parte inferior de la consola de Cloud de Confiance , se inicia una sesión de Cloud Shell en la que se muestra una ventana de línea de comandos. Cloud Shell es un entorno de shell con Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.

  1. Instala y actualiza la CLI de cbt.
    gcloud components update
    gcloud components install cbt

Crea un tema de Pub/Sub

  1. En la consola de Cloud de Confiance , ve a la página Temas de Pub/Sub.

    Ir a temas

  2. Haz clic en Crear un tema.

  3. Establece el ID en bigtable-change-stream-topic.

  4. Selecciona Usar un esquema.

  5. En el menú desplegable Selecciona un esquema de Pub/Sub, haz clic en Crear un esquema nuevo. Se abrirá una pestaña nueva en la que definirás el esquema.

    1. Establece el ID del esquema en bigtable-change-stream-schema.
    2. Establece el tipo de esquema en Avro.
    3. Pega lo siguiente como la definición del esquema. Puedes encontrar más información sobre el esquema en la página de documentación de la plantilla.
      {
          "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. Haz clic en Crear para crear el esquema.
  6. Cierra la pestaña Crear esquema, actualiza la lista de esquemas y selecciona el esquema que acabas de definir.

  7. Haz clic en Crear para crear el tema.

Opcional: Crea una función de Cloud Run

Es posible que desees procesar el flujo de Pub/Sub con una función de Cloud Run.

  1. En la página Detalles del tema bigtable-change-stream-topic, haz clic en Activar Cloud Function .
  2. En el campo Nombre de la función, ingresa el nombre bt-ps-tutorial-function.
  3. En la sección Código fuente, haz clic en el menú desplegable Tiempo de ejecución y, luego, selecciona el tiempo de ejecución y el lenguaje de programación que prefieras. Se genera un objeto hello world que imprime el flujo de cambios a medida que llega. Consulta la documentación para obtener más información sobre cómo escribir Cloud Run Functions.
  4. Usa los valores predeterminados en todos los otros campos.
  5. Haz clic en Implementar función.

Crea una tabla con un flujo de cambios habilitado

  1. En la consola de Cloud de Confiance , ve a la página Instancias de Bigtable.

    Ir a Instancias

  2. Haz clic en el ID de la instancia que usas para este instructivo.

    Si no tienes una instancia disponible, crea una con las configuraciones predeterminadas en una región cercana.

  3. En el panel de navegación izquierdo, haz clic en Tablas.

  4. Haz clic en Crea una tabla.

  5. Asigna el nombre change-streams-pubsub-tutorial a la tabla.

  6. Agrega una familia de columnas llamada cf.

  7. Selecciona Habilitar el flujo de cambios.

  8. Haz clic en Crear.

Inicializa una canalización de datos para capturar el flujo de cambios

  1. En la página Tablas de Bigtable, busca tu tabla change-streams-pubsub-tutorial.
  2. En la columna Change stream, haz clic en Connect.
  3. En el diálogo, selecciona Pub/Sub.
  4. Haz clic en Crear trabajo de Dataflow.
  5. En la página Crear trabajo de Dataflow, configura el nombre del tema de Pub/Sub de salida como bigtable-change-stream-topic.
  6. Establece el ID del perfil de aplicación de Bigtable en default.
  7. Haga clic en Ejecutar trabajo.
  8. Espera a que el estado del trabajo sea Iniciando o En ejecución antes de continuar. Tarda alrededor de 5 minutos una vez que el trabajo se pone en cola.

Escribe algunos datos en Bigtable

  1. En Cloud Shell, escribe algunas filas en Bigtable para que el registro de cambios pueda escribir algunos datos en el flujo de Pub/Sub. Siempre y cuando escribas los datos después de que se cree el trabajo, aparecerán los cambios. No tienes que esperar a que el estado del trabajo cambie a 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
    

Consulta los registros de cambios en Pub/Sub

  1. En la consola de Cloud de Confiance , ve a la página Suscripciones de Pub/Sub.

    Ir a Suscripciones

  2. Haz clic en la suscripción que se creó automáticamente para tu tema bigtable-change-stream-topic. Debería llamarse bigtable-change-stream-topic-sub.

  3. Ve a la pestaña Mensajes.

  4. Haz clic en Extraer.

  5. Explora la lista de mensajes y consulta los datos que escribiste.

    Mensajes del registro de cambios en Pub/Sub

Opcional: Visualiza los cambios en los registros de Cloud Run Functions

Si creaste una función de Cloud Run Functions, puedes ver los cambios en los registros.

  1. En la consola de Cloud de Confiance , ve a Cloud Run Functions.

    Ir a Cloud Run Functions

  2. Haz clic en tu función bt-ps-tutorial-function.

  3. Ve a la pestaña Registros.

  4. Asegúrate de que Severity esté configurado como, al menos, Info para que puedas ver los registros.

  5. Explora los registros y consulta los datos que escribiste.

El resultado es similar al siguiente:

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

Realiza una limpieza

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra la tabla de Bigtable

  1. En la consola de Cloud de Confiance , ve a la página Instancias de Bigtable.

    Ir a Instancias

  2. Haz clic en el ID de la instancia que usas para este instructivo.

  3. En el panel de navegación izquierdo, haz clic en Tablas.

  4. Busca la tabla change-streams-pubsub-tutorial.

  5. Haz clic en Editar.

  6. Borra Habilitar el flujo de cambios.

  7. Haz clic en Guardar.

  8. Abre el menú ampliado de la tabla.

  9. Haz clic en Borrar y, luego, ingresa el nombre de la tabla para confirmar.

Detén la canalización del flujo de cambios

  1. En la consola de Cloud de Confiance , ve a la página Trabajos de Dataflow.

    Ir a Trabajos

  2. Selecciona tu trabajo de transmisión en la lista de trabajos.

  3. En la navegación, haz clic en Detener.

  4. En el cuadro de diálogo Detener trabajo, cancela tu canalización y, luego, haz clic en Detener trabajo.

Borra el tema y la suscripción de Pub/Sub

  1. En la consola de Cloud de Confiance , ve a la página Temas de Pub/Sub.

    Ir a temas

  2. Selecciona el tema bigtable-change-stream-topic.

  3. Haz clic en Borrar y confirma tu decisión.

  4. Haz clic en Suscripciones en la barra lateral.

  5. Selecciona la suscripción a bigtable-change-stream-topic-sub.

  6. Haz clic en Borrar y confirma tu decisión.

Borra la Cloud Run Function

  1. En la consola de Cloud de Confiance , ve a Cloud Run Functions.

    Ir a Cloud Run Functions

  2. Selecciona la función bt-ps-tutorial-function.

  3. Haz clic en Borrar y confirma tu decisión.

¿Qué sigue?