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. No se conservarán los datos de las ejecuciones, dado que el emulador almacena datos solamente en la memoria. 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 con gcloud CLI y Docker. Elige la forma adecuada para el desarrollo de tu aplicación y en el flujo de trabajo de prueba.
Configura la autenticación
In the Google Cloud console, 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.
gcloud CLI
Actualiza la instalación de gcloud CLI para obtener la versión más reciente atributos:
gcloud components update beta
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 puerto específicos, usa la marca opcional--host-port
, que reemplaza a 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
Escribe Control-C para detener el emulador.
Docker
Asegúrate de usar Docker. esté instalada en el sistema y esté disponible en la ruta del sistema.
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 existente de Docker Compose (.yaml
).
Para obtener más información sobre Docker Compose, consulta Descripción general de Docker Compose.
Cómo usar 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 BIGTABLE_EMULATOR_HOST
esté configurado, podrás probar el emulador; para ello, sigue las instrucciones
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 agrupa el emulador de Bigtable incorporado y proporciona una interfaz de Java para escribir pruebas.
Para obtener más información sobre el uso del 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 limitación 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.