Cómo realizar pruebas con el emulador

Google Cloud CLI proporciona un emulador local en la memoria para Bigtable, que puedes usar a fin de probar tu aplicación. Como el emulador almacena datos solo en la memoria, no conservará datos entre ejecuciones. Está diseñado con el objetivo de ayudarte a usar Bigtable en el desarrollo y las pruebas locales, y no para las implementaciones de producción.

Puedes usar el emulador con todas las bibliotecas cliente de Cloud Bigtable.

El emulador no proporciona API administrativas para administrar o crear instancias y clústeres. Una vez que se inicia el emulador, puedes conectarte a él con cualquier proyecto y nombre de instancia para crear tablas, y leer o escribir datos. El emulador no admite una conexión segura.

Cómo instalar y ejecutar el emulador

Las dos formas más comunes de ejecutar el emulador son mediante la gcloud CLI y Docker. Elige la forma adecuada para el flujo de trabajo de desarrollo y prueba de tu aplicación.

Configura la autenticación

Puedes usar las muestras de gcloud CLI en esta página desde cualquiera de los siguientes entornos de desarrollo:

  • Cloud Shell: Para usar una terminal en línea con la CLI de gcloud ya configurada, activa Cloud Shell.

    En la parte inferior de esta página, se inicia una sesión de Cloud Shell y se muestra una ventana de línea de comandos. La sesión puede tardar unos segundos en inicializarse.

  • Shell local: Para usar la CLI de gcloud en un entorno de desarrollo local, instala e inicializa la CLI de gcloud.

gcloud CLI

  1. Actualiza la instalación de gcloud CLI para obtener las funciones más recientes:

    gcloud components update beta
    
  2. Ejecuta el siguiente comando para iniciar el emulador

    gcloud beta emulators bigtable start
    

    Si el emulador aún no está instalado, se te solicitará que realices la descarga y la instalación del objeto binario para el emulador.

    El emulador imprime el host y el número de puerto donde se esté ejecutando.

    De forma predeterminada, el emulador elige localhost:8086. Para vincular el emulador a un host y un puerto específicos, usa la marca opcional --host-port, en la que se reemplazan HOST y PORT:

    gcloud beta emulators bigtable start --host-port=HOST:PORT
    

    A continuación, se muestra un ejemplo:

    gcloud beta emulators bigtable start --host-port=localhost:8086
    
  3. Escribe Control-C para detener el emulador.

Docker

  1. Asegúrate de que Docker esté instalado en tu sistema y esté disponible en la ruta del sistema.

  2. Inicia el emulador:

    docker run -p 127.0.0.1:8086:8086 --rm -ti google/cloud-sdk gcloud beta emulators bigtable start --host-port=0.0.0.0:8086
    

    Este comando ejecuta el emulador y asigna los puertos del contenedor a los mismos puertos de tu host local.

También puedes usar el emulador como parte de tu archivo de configuración de Docker Compose (.yaml) existente. Para obtener más información sobre Docker Compose, consulta Descripción general de Docker Compose.

Usa las bibliotecas cliente con el emulador

Configura la variable de entorno BIGTABLE_EMULATOR_HOST para usar las bibliotecas cliente con el emulador:

Linux/macOS

  export BIGTABLE_EMULATOR_HOST=localhost:8086

Windows

  set BIGTABLE_EMULATOR_HOST=localhost:8086

Cuando se inicia la aplicación, la biblioteca cliente busca BIGTABLE_EMULATOR_HOST automáticamente y se conecta al emulador si se está ejecutando.

Una vez que se configure BIGTABLE_EMULATOR_HOST, podrás probar el emulador siguiendo las muestras de Hello World.

Para detener el emulador, escribe Control-C y, luego, desactiva BIGTABLE_EMULATOR_HOST con el siguiente comando:

    unset BIGTABLE_EMULATOR_HOST

Wrapper de Java para el emulador

El wrapper de Java empaqueta el emulador integrado de Bigtable y proporciona una interfaz de Java para escribir pruebas.

Para obtener más información sobre cómo usar el wrapper de Java, consulta el repositorio de GitHub.

En la siguiente documentación, se proporciona más información sobre los paquetes de Java del emulador:

Filtros

El emulador admite todos los filtros, excepto el filtro de límite Sink.

Se hace un seguimiento de los problemas relacionados con el emulador de Bigtable en el repositorio de GitHub google-cloud-go. Puedes usarlo para presentar informes de errores y solicitudes de funciones o comentar problemas existentes.