Objectifs
Rédiger, déployer et déclencher une fonction cloud HTTP qui accède à Spanner
Coûts
Cette rubrique utilise Spanner et Cloud Functions, qui sont des composants facturables de Google Cloud.
Pour en savoir plus sur le coût d'utilisation de Spanner, consultez la page Tarifs de Spanner.
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 cette rubrique, nous supposons que vous disposez d'une instance Spanner nommée
test-instance
et d'une base de données nomméeexample-db
qui utilise le schéma d'une application musicale. Pour obtenir des instructions sur la création d'une instance et d'une base de données avec le schéma d'application musicale, consultez la page Démarrage rapide avec la console ou les tutoriels de prise en main de Go, Java, Node.js ou Python.Activez les API Cloud Functions et Cloud Build.
Installez et initialisez le SDK Cloud.
Si le SDK Cloud 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.
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.
Accédez au répertoire contenant l'exemple de code Cloud Functions pour accéder à Spanner :
Node.js
cd nodejs-docs-samples/functions/spanner/
Python
cd python-docs-samples/functions/spanner/
Go
cd golang-samples/functions/spanner/
Java
cd java-docs-samples/functions/spanner/
Consultez l'exemple de code :
Node.js
Python
Go
Java
La fonction envoie une requête SQL pour extraire toutes les données
Albums
de votre base de données. 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 spanner
:
Node.js
gcloud functions deploy get \ --runtime nodejs10 --trigger-httpVous pouvez attribuer les valeurs suivantes à l'option
--runtime
, afin de spécifier votre version préférée de Node.js : nodejs10
nodejs12
nodejs14
(aperçu public)
Python
gcloud functions deploy spanner_read_data \ --runtime python37 --trigger-httpVous pouvez attribuer les valeurs suivantes à l'option
--runtime
, afin de spécifier votre version préférée de Python :python37
python38
python39
(aperçu public)
Go
gcloud functions deploy HelloSpanner \ --runtime go111 --trigger-httpVous pouvez attribuer les valeurs suivantes à l'option
--runtime
, afin de spécifier votre version préférée de Go : go111
go113
Java
gcloud functions deploy java-spanner-function \ --entry-point functions.HelloSpanner \ --runtime java11 \ --memory 512MB --trigger-http
Le déploiement de la fonction peut prendre jusqu'à deux minutes.
Notez la valeur url
affichée lorsque le déploiement de la fonction est terminé. 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"
Python
curl "https://REGION-PROJECT_ID.cloudfunctions.net/spanner_read_data"
Go
curl "https://REGION-PROJECT_ID.cloudfunctions.net/HelloSpanner"
Java
curl "https://REGION-PROJECT_ID.cloudfunctions.net/java-spanner-function"
où REGION
et PROJECT_ID
correspondent aux valeurs visibles dans votre terminal une fois le déploiement de la fonction terminé. Si vous avez suivi un tutoriel de prise en main et rempli la base de données, le résultat de la requête SQL semblable aux lignes suivantes devrait s'afficher :
SingerId: 2, AlbumId: 2, AlbumTitle: Forever Hold Your Peace
SingerId: 1, AlbumId: 2, AlbumTitle: Go, Go, Go
SingerId: 2, AlbumId: 1, AlbumTitle: Green
SingerId: 2, AlbumId: 3, AlbumTitle: Terrified
SingerId: 1, AlbumId: 1, AlbumTitle: Total Junk
Vous pouvez également accéder à l'URL de la fonction dans votre navigateur pour visualiser le résultat de votre requête SQL.
Nettoyage
Afin d'éviter que des frais supplémentaires soient facturés sur votre compte Google Cloud pour les ressources Spanner et Cloud Functions utilisées dans cette rubrique, procédez comme suit :
Supprimez l'instance :
gcloud spanner instances delete test-instance
Supprimez la fonction que vous avez déployée :
Node.js
gcloud functions delete get
Python
gcloud functions delete spanner_read_data
Go
gcloud functions delete HelloSpanner
Java
gcloud functions delete java-spanner-function