Effectuer des tests avec l'émulateur
Google Cloud CLI fournit un émulateur local en mémoire pour Bigtable, que vous pouvez utiliser pour tester votre application. Étant donné que l'émulateur stocke les données uniquement en mémoire, il ne les conserve pas 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 adaptée au workflow de développement et de test de votre application.
Configurer l'authentification
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.
CLI gcloud
Mettez à jour votre installation de gcloud CLI pour bénéficier des dernières fonctionnalités:
gcloud components update beta
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'indicateur facultatif--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
Tapez Ctrl+C pour arrêter l'émulateur.
Docker
Assurez-vous que Docker est installé sur votre système et disponible sur le chemin d'accès au système.
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 exemples Hello World.
Pour arrêter l'émulateur, appuyez sur Ctrl+C, puis retirez 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.