Effectuer des tests avec l'émulateur

La Google Cloud CLI fournit un émulateur local en mémoire pour Bigtable, qui permet de tester votre application. En effet, l'émulateur ne stocke que les données en mémoire, il ne conservera pas les données d'une exécution à l'autre. Il est destiné à vous aider à utiliser Bigtable pour le développement et les tests locaux, et non pour les déploiements en production.

Vous pouvez utiliser l'émulateur avec toutes les bibliothèques clientes Cloud Bigtable.

L'émulateur ne fournit pas d'API d'administration pour créer ou gérer des instances et des clusters. Une fois que l'émulateur est lancé, vous pouvez vous connecter à lui en utilisant n'importe quel nom de projet ou d'instance pour créer des tables et lire ou écrire des données. L'émulateur n'est pas compatible avec une connexion sécurisée.

Installer et exécuter l'émulateur

Les deux méthodes les plus courantes pour exécuter l'émulateur sont l'utilisation de la CLI gcloud et de Docker. Choisissez la méthode la plus appropriée pour le développement et le workflow de test.

Configurer l'authentification

Vous pouvez utiliser les exemples gcloud CLI de cette page dans l'un des environnements de développement suivants :

  • Cloud Shell : pour utiliser un terminal en ligne avec gcloud CLI déjà configuré, activez Cloud Shell.

    En bas de cette page, une session Cloud Shell démarre et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.

  • Shell local : pour utiliser gcloud CLI dans un environnement de développement local, installez et initialisez gcloud CLI.

CLI gcloud

  1. Mettez à jour votre installation de gcloud CLI pour bénéficier des dernières fonctionnalités :

    gcloud components update beta
    
  2. Exécutez la commande suivante pour démarrer l'émulateur :

    gcloud beta emulators bigtable start
    

    Si l'émulateur n'est pas déjà installé, vous serez invité à télécharger et installer le fichier binaire de l'émulateur.

    L'émulateur imprime l'hôte et le numéro de port sur lequel il s'exécute.

    Par défaut, l'émulateur choisit la paire hôte/port localhost:8086. Pour lier l'émulateur à un hôte et un port spécifiques, utilisez l'option facultative --host-port, en remplaçant HOST et PORT:

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

    En voici un exemple :

    gcloud beta emulators bigtable start --host-port=localhost:8086
    
  3. Tapez Ctrl+C pour arrêter l'émulateur.

Docker

  1. Assurez-vous que Docker est installé sur votre système et disponible sur le chemin d’accès au système.

  2. Démarrez l'émulateur :

    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
    

    Cette commande exécute l'émulateur et mappe les ports du conteneur aux mêmes ports sur l'hôte local.

Vous pouvez également utiliser l'émulateur dans votre fichier de configuration Docker Compose (.yaml) existant. Pour en savoir plus sur Docker Compose, consultez la page Présentation de Docker Compose.

Utiliser les bibliothèques clientes avec l'émulateur

Définissez la variable d'environnement BIGTABLE_EMULATOR_HOST pour utiliser les bibliothèques clientes avec l'émulateur :

Linux/macOS

  export BIGTABLE_EMULATOR_HOST=localhost:8086

Windows

  set BIGTABLE_EMULATOR_HOST=localhost:8086

Lorsque votre application démarre, la bibliothèque cliente recherche automatiquement BIGTABLE_EMULATOR_HOST et se connecte à l'émulateur s'il est en cours d'exécution.

Une fois BIGTABLE_EMULATOR_HOST défini, vous pouvez tester l'émulateur en suivant les instructions exemples Hello World.

Pour arrêter l'émulateur, appuyez sur Ctrl+C, puis annulez la définition de BIGTABLE_EMULATOR_HOST à l'aide de la commande suivante:

    unset BIGTABLE_EMULATOR_HOST

Wrapper Java pour l'émulateur

Le wrapper Java regroupe l'émulateur Bigtable intégré et fournit une interface Java pour écrire des tests.

Pour en savoir plus sur l'utilisation du wrapper Java, consultez le dépôt GitHub.

La documentation suivante fournit plus d'informations sur les packages Java de l'émulateur:

Filtres

L'émulateur est compatible avec tous les filtres, à l'exception du filtre limitant Sink.

Les problèmes liés à l'émulateur Bigtable sont suivis dans le dépôt GitHub google-cloud-go, où vous pouvez créer des rapports de bugs et des demandes de fonctionnalités, ou commenter des problèmes existants.