Objectifs
Rédiger, déployer et déclencher une fonction Cloud HTTP qui accède à Bigtable.
Coûts
Cet article fait appel à Bigtable et Cloud Functions, qui sont des composants facturables de Google Cloud.
Pour en savoir plus sur le coût d'utilisation de Bigtable, consultez la section Tarifs de Bigtable.
Pour en savoir plus sur le coût d'utilisation de Cloud Functions, y compris les appels gratuits, consultez la section Tarifs de Cloud Functions.
Avant de commencer
Dans cet article, nous supposons que vous disposez d'une instance Bigtable nommée
test-instance
et d'une table nomméetest-table
. Vous pouvez créer ces ressources en suivant les étapes décrites à la page Créer une table de test. Veillez à supprimer les ressources une fois que vous avez terminé pour éviter des coûts inutiles.Activez l'API Cloud Functions.
Installez et initialisez gcloud CLI.
Si gcloud CLI est déjà installé, mettez-le à jour en exécutant la commande suivante :
gcloud components update
Préparez votre environnement de développement :
Préparer l'application
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Ouvrez le répertoire qui contient l'exemple de code Cloud Functions permettant d'accéder à Bigtable :
Node.js
cd nodejs-docs-samples/functions/bigtable/
Python
cd python-docs-samples/functions/bigtable/
Go
cd golang-samples/functions/bigtable/
Consultez l'exemple de code :
Node.js
Python
Go
La fonction envoie à la table une requête de lecture pour extraire toutes les données
stats_summary
des lignes ayant comme préfixe de clé de lignephone
. La fonction est exécutée lorsque vous effectuez une requête HTTP sur le point de terminaison de la fonction.
Déployer la fonction
Pour déployer la fonction avec un déclencheur HTTP, exécutez la commande suivante dans le répertoire bigtable
:
Node.js
gcloud functions deploy get \ --runtime nodejs20 --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Node.js compatible pour exécuter votre fonction.
Python
gcloud functions deploy bigtable_read_data \ --runtime python312 --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Python compatible pour exécuter votre fonction.
Go
gcloud functions deploy BigtableRead \ --runtime go121 --trigger-http
Utilisez l'option --runtime
pour spécifier l'ID d'exécution d'une version Go compatible pour exécuter votre fonction.
Le déploiement de la fonction peut prendre jusqu'à deux minutes.
Une fois le déploiement de votre fonction terminé, la valeur url
est renvoyée. Vous l'utiliserez lorsque vous déclencherez la fonction.
Vous pouvez afficher les fonctions que vous avez déployées sur la page Cloud Functions de Google Cloud Console. Cette page vous permet également de créer et de modifier des fonctions, et d'obtenir des détails ou des diagnostics sur vos fonctions.
Déclencher la fonction
Envoyez une requête HTTP à votre fonction :
Node.js
curl "https://REGION-PROJECT_ID.cloudfunctions.net/get" -H "instance_id: test-instance" -H "table_id: test-table"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/bigtable_read_data" -H "instance_id: test-instance" -H "table_id: test-table"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/BigtableRead" -H "instance_id: test-instance" -H "table_id: test-table"
où REGION
et PROJECT_ID
correspondent aux valeurs visibles dans votre terminal une fois le déploiement de la fonction terminé. Vous devriez voir apparaître en sortie les résultats de la requête de lecture.
Vous pouvez également accéder à l'URL de la fonction dans votre navigateur pour visualiser le résultat de votre requête de lecture.
Nettoyer
Afin d'éviter que des frais supplémentaires ne soient facturés sur votre compte Google Cloud pour les ressources Bigtable et Cloud Functions utilisées dans ce tutoriel, effectuez les opérations suivantes :
Supprimez l'instance :
gcloud bigtable instances delete test-instance
Supprimez la fonction que vous avez déployée :
Node.js
gcloud functions delete get
Python
gcloud functions delete bigtable_read_data
Go
gcloud functions delete BigtableRead
Étapes suivantes
- En savoir plus sur l'écriture des fonctions Cloud Functions
- En savoir plus sur le déploiement des fonctions Cloud Functions
- En savoir plus sur l'appel des fonctions Cloud Functions
- Apprenez à surveiller des fonctions Cloud Functions.