Exécuter l'émulateur Cloud Datastore

L'émulateur Cloud Datastore fournit une émulation locale de l'environnement de production Cloud Datastore. L'émulateur peut vous servir à développer et tester votre application en local. En outre, l'émulateur peut vous aider à générer des index pour votre instance de production en mode Datastore et à supprimer des index inutiles. Cette page vous guide tout au long de l'installation de l'émulateur, de son démarrage et de la configuration des variables d'environnement permettant de connecter votre application à l'émulateur.

Avant de commencer

Pour utiliser l'émulateur Cloud Datastore, vous avez besoin des éléments suivants :

Installer l'émulateur

L'émulateur Cloud Datastore est un composant de l'outil gcloud du SDK Google Cloud. Installez l'émulateur Cloud Datastore à l'aide de la commande gcloud components install :

gcloud components install cloud-datastore-emulator

Répertoires de données de l'émulateur

L'émulateur simule Cloud Datastore en créant /WEB-INF/appengine-generated/local_db.bin dans un répertoire de données spécifié et en stockant des données dans local_db.bin. Par défaut, l'émulateur utilise le répertoire de données ~/.config/gcloud/emulators/datastore/. Le fichier local_db.bin persiste entre les sessions de l'émulateur. Vous pouvez configurer plusieurs répertoires de données et les considérer comme une instance en mode Datastore locale et distincte. Pour effacer le contenu d'un fichier local_db.bin, arrêtez l'émulateur et supprimez manuellement le fichier.

Démarrer l'émulateur

Démarrez l'émulateur en exécutant datastore start depuis une invite de commande :

gcloud beta emulators datastore start [flags]

[flags] correspond aux arguments facultatifs de ligne de commande fournis à l'outil de ligne de commande gcloud. Exemple :

  • --data-dir=[DATA_DIR] modifie le répertoire de données de l'émulateur. L'émulateur crée le fichier /WEB-INF/appengine-generated/local_db.bin dans [DATA_DIR] ou, le cas échéant, utilise un fichier existant.

  • --no-store-on-disk configure l'émulateur pour qu'il ne conserve aucune donnée sur le disque concernant la session de l'émulateur.

Consultez la commande de référence gcloud beta emulators datastore start pour obtenir la liste complète des indicateurs facultatifs.

Une fois l'émulateur démarré, un message semblable aux lignes suivantes doit s'afficher :

...
[datastore] Dev App Server is now running.

Pour arrêter l'émulateur, appuyez sur les touches CTRL+C à l'invite de commande.

Définir des variables d'environnement

Après avoir démarré l'émulateur, vous devez définir des variables d'environnement pour que votre application se connecte à l'émulateur et non à votre base de données de production en mode Datastore. Définissez ces variables d'environnement sur la même machine que celle utilisée pour exécuter votre application.

Les variables d'environnement doivent être définies chaque fois que vous démarrez l'émulateur. Elles dépendent des numéros de port attribués de manière dynamique, qui sont susceptibles d'être modifiés lorsque vous redémarrez l'émulateur.

Définir les variables automatiquement

Si votre application et l'émulateur s'exécutent sur la même machine, vous pouvez définir les variables d'environnement automatiquement comme suit :

Linux/macOS

Exécutez env-init à l'aide de la substitution de commande :

$(gcloud beta emulators datastore env-init)

Windows

Créez et exécutez un fichier batch à l'aide du résultat de la commande env-init :

gcloud beta emulators datastore env-init > set_vars.cmd && set_vars.cmd

Votre application se connecte alors à l'émulateur Cloud Datastore.

Définir les variables manuellement

Si votre application et l'émulateur s'exécutent sur des machines différentes, définissez les variables d'environnement manuellement :

  1. Exécutez la commande env-init :

    gcloud beta emulators datastore env-init
  2. Sur la machine qui exécute votre application, définissez les variables d'environnement, ainsi que ses valeurs, comme indiqué par le résultat de la commande env-init. Exemple :

    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

Votre application se connecte alors à l'émulateur Cloud Datastore.

Mettre à jour et supprimer des index

En exécutant votre application à l'aide de l'émulateur, vous pouvez générer des index pour votre base de données de production en mode Datastore et supprimer des index inutiles. En savoir plus sur l'utilisation de l'outil gcloud.

Supprimer les variables d'environnement

Après avoir terminé d'utiliser l'émulateur, arrêtez-le (Control-C) et supprimez les variables d'environnement afin que votre application se connecte à votre base de données de production en mode Datastore.

Supprimer les variables automatiquement

Si votre application et l'émulateur s'exécutent sur la même machine, vous pouvez supprimer les variables d'environnement automatiquement :

Linux/macOS

Exécutez env-unset à l'aide de la substitution de commande :

$(gcloud beta emulators datastore env-unset)

Windows

Créez et exécutez un fichier batch à l'aide du résultat de la commande env-unset :

gcloud beta emulators datastore env-unset > remove_vars.cmd && remove_vars.cmd

Votre application se connecte alors à votre base de données de production en mode Datastore.

Supprimer les variables manuellement

Si votre application et l'émulateur s'exécutent sur des machines différentes, supprimez les variables d'environnement manuellement :

  1. Exécutez la commande env-unset :

    gcloud beta emulators datastore env-unset
  2. Sur la machine qui exécute votre application, supprimez les variables d'environnement comme indiqué par le résultat de la commande env-unset. Exemple :

    Linux/macOS
    unset DATASTORE_EMULATOR_HOST
    unset DATASTORE_PROJECT_ID
    Windows
    set DATASTORE_EMULATOR_HOST=
    set DATASTORE_PROJECT_ID=

Votre application se connecte alors à votre base de données de production en mode Datastore.

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Cloud Datastore