El emulador de Datastore permite la emulación local del entorno de producción de Datastore. Puedes usar el emulador para desarrollar y probar tus aplicaciones de forma local. Además, el emulador puede ayudarte a generar índices para tu instancia de producción de Firestore en modo Datastore y borrar índices innecesarios. Esta página te explicará cómo instalar el emulador, cómo iniciarlo y cómo configurar variables del entorno para que se pueda conectar con tus aplicaciones.
Antes de comenzar
Para usar el emulador de Datastore, necesitas lo siguiente:
- Java JRE (versión 8 o superior)
- El SDK de Google Cloud
- Una aplicación compilada mediante las bibliotecas cliente de Google Cloud
Instala el emulador
El emulador de Datastore es un componente de la herramienta de gcloud
del SDK de Google Cloud. Usa el comando gcloud components install
para instalar el emulador de Datastore:
gcloud components install cloud-datastore-emulator
Directorios de datos del emulador
El emulador simula Datastore mediante la creación de /WEB-INF/appengine-generated/local_db.bin
en un directorio de datos especificado y el almacenamiento de datos en local_db.bin
. De forma predeterminada, el emulador usa el directorio de datos ~/.config/gcloud/emulators/datastore/
.
El archivo local_db.bin
persiste entre las sesiones del emulador. Puedes configurar varios directorios de datos y considerar a cada uno como una instancia independiente y local en modo Datastore. Para borrar el contenido de un archivo local_db.bin
, detén el emulador y borra el archivo de forma manual.
Inicia el emulador
Para iniciar el emulador ejecuta datastore start
desde el símbolo del sistema:
gcloud beta emulators datastore start [flags]
en el que [flags]
son argumentos opcionales de la línea de comandos suministrados a la herramienta de gcloud
. Por ejemplo:
--data-dir=[DATA_DIR]
cambia el directorio de datos del emulador. El emulador crea el archivo/WEB-INF/appengine-generated/local_db.bin
dentro de[DATA_DIR]
o, si está disponible, usa un archivo existente.--no-store-on-disk
configura el emulador a fin de que no conserve ningún dato en el disco para la sesión del emulador.
Consulta la referencia de gcloud beta emulators datastore start
para ver la lista completa de marcas opcionales.
Después de iniciar el emulador, deberías ver un mensaje similar a este:
...
[datastore] Dev App Server is now running.
Para detener el emulador, escribe Control-C en el símbolo del sistema.
Configura variables de entorno
Después de iniciar el emulador, debes establecer variables de entorno para que tu aplicación se conecte a él en lugar de a la base de datos de producción en modo Datastore. Configura estas variables de entorno en la misma máquina que usaste para ejecutar tu aplicación.
Es necesario que configures las variables del entorno cada vez que inicias el emulador. Las variables de entorno dependen de los números de puerto asignados de forma dinámica, que pueden cambiar cuando reinicias el emulador.
Configura las variables de forma automática
Si tu aplicación y el emulador se ejecutan en la misma máquina, puedes configurar las variables del entorno de forma automática:
Linux/macOS
Ejecuta env-init
con la sustitución de comandos:
$(gcloud beta emulators datastore env-init)
Windows
Crea y ejecuta un archivo por lotes con el resultado de env-init
:
gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd
Tu aplicación se conectará al emulador de Datastore.
Configura las variables de forma manual
Si tu aplicación y el emulador se ejecutan en máquinas diferentes, configura las variables de entorno de forma manual:
Ejecuta el comando
env-init
:gcloud beta emulators datastore env-init
En la máquina que ejecuta tu aplicación, configura las variables de entorno y los valores según lo que indica el resultado del comando
env-init
. Por ejemplo:Linux/macOS export DATASTORE_EMULATOR_HOST=localhost:8432 export DATASTORE_PROJECT_ID=my-project-id
Windows set DATASTORE_EMULATOR_HOST=localhost:8432 set DATASTORE_PROJECT_ID=my-project-id
Tu aplicación se conectará al emulador de Datastore.
Actualiza y borra índices
Cuando ejecutas tu aplicación con el emulador, puedes generar índices para tu base de datos de producción en modo Datastore, además de borrar índices innecesarios. Obtén más información en la sección sobre cómo usar la herramienta de gcloud
.
Quita variables de entorno
Cuando termines de usar el emulador, detenlo (Control-C) y quita las variables de entorno para que tu aplicación se conecte a tu base de datos de producción en modo Datastore.
Quita las variables de forma automática
Si tu aplicación y el emulador se ejecutan en la misma máquina, puedes quitar las variables del entorno de forma automática:
Linux/macOS
Ejecuta env-unset
con la sustitución de comandos:
$(gcloud beta emulators datastore env-unset)
Windows
Crea y ejecuta un archivo por lotes mediante el resultado de env-unset
:
gcloud beta emulators datastore env-unset > remove_vars.cmd && remove_vars.cmd
Ahora la aplicación se conectará a la base de datos de producción en modo Datastore.
Quita las variables de forma manual
Si tu aplicación y el emulador se ejecutan en máquinas diferentes, quita las variables de entorno de forma manual:
Ejecuta el comando
env-unset
:gcloud beta emulators datastore env-unset
En la máquina que ejecuta tu aplicación, quita las variables de entorno como lo indica el resultado del comando
env-unset
. Por ejemplo:Linux/macOS unset DATASTORE_EMULATOR_HOST unset DATASTORE_PROJECT_ID
Windows set DATASTORE_EMULATOR_HOST= set DATASTORE_PROJECT_ID=
Ahora la aplicación se conectará a la base de datos de producción en modo Datastore.