1. Introduction
Présentation
Les fonctions Cloud Run constituent une nouvelle façon de déployer des charges de travail à l'aide des paradigmes d'événements GCF connus et de la signature des fonctions. Au lieu d'utiliser nos configurations de déploiement et de compilation avisées, Cloud Run vous donne un contrôle direct sur le service sous-jacent créé dans Cloud Run.
Avec les fonctions Cloud Run, nous fournissons l'expérience utilisateur simple du déploiement source Cloud Run, ce qui donne aux développeurs un contrôle total sur leurs charges de travail à l'aide de configurations Cloud Run.
Cet atelier de programmation utilise des exemples Node.js dans les exemples ci-dessous. Toutefois, vous pouvez utiliser les exemples de code Cloud Functions 2e génération dans le langage de votre choix:
- Exemples de fonctions Python
- Exemples de fonctions Node.js
- Exemples de fonctions Go
- Exemples de fonctions Java
- Exemples de fonctions PHP
- Exemples de fonctions Ruby
- Exemples de fonctions.NET
Points abordés
- Déployer une fonction Cloud Run déclenchée par une requête HTTP
2. Définir des variables d'environnement et activer des API
Mettre à niveau la gcloud CLI
Pour commencer, une version récente de la gcloud CLI doit être installée. Vous pouvez mettre à jour la CLI en exécutant la commande suivante:
gcloud components update
Configurer des variables d'environnement
Vous pouvez définir les variables d'environnement qui seront utilisées tout au long de cet atelier de programmation.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
Activer les API
Avant de commencer à utiliser cet atelier de programmation, vous devez activer plusieurs API. Cet atelier de programmation nécessite l'utilisation des API suivantes. Vous pouvez activer ces API en exécutant la commande suivante:
gcloud services enable run.googleapis.com \ cloudbuild.googleapis.com \ storage.googleapis.com \ artifactregistry.googleapis.com
3. Créer une fonction HTTP
Tout d'abord, créez un répertoire pour le code source et utilisez la commande cd pour y accéder.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Ensuite, créez un fichier package.json
avec le contenu suivant:
{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
Ensuite, créez un fichier index.js
avec le contenu suivant:
const functions = require("@google-cloud/functions-framework"); functions.http("helloHttp", (req, res) => { res.send(`Hello ${req.query.name || req.body.name || "World"}!`); });
4. Déployer la fonction
Vous pouvez maintenant déployer la fonction Cloud Run en exécutant la commande suivante:
gcloud beta run deploy $SERVICE_NAME \ --source . \ --function helloHttp \ --region us-central1 \ --no-allow-unauthenticated
Cette commande utilise des buildpacks pour transformer le code source de votre fonction en une image de conteneur prête pour la production.
Remarques :
- L'option "-source" permet d'indiquer à Cloud Run de créer la fonction dans un service exécutable basé sur des conteneurs.
- L'option –function (new) est utilisée pour définir le point d'entrée du nouveau service comme signature de la fonction que vous souhaitez appeler
- (facultatif) l'attribut –no-allow-unauthenticated pour empêcher l'appel public de votre fonction
5. Tester la fonction
Une fois le déploiement terminé, l'URL du service s'affiche. Pour appeler la fonction, vous devez envoyer une requête authentifiée avec votre jeton d'identité ou le jeton d'identité d'un principe doté du rôle Demandeur Cloud Run, comme indiqué ci-dessous:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. Félicitations !
Félicitations, vous avez terminé l'atelier de programmation.
Nous vous recommandons de consulter la documentation sur les fonctions Cloud Run.
Points abordés
- Déployer une fonction Cloud Run déclenchée par une requête HTTP
7. Effectuer un nettoyage
Pour éviter des frais accidentels (par exemple, si les services Cloud Run sont invoqués plus de fois que l'allocation mensuelle des appels Cloud Run dans le niveau sans frais), vous pouvez supprimer Cloud Run ou le projet créé à l'étape 2.
Pour supprimer la fonction Cloud Run, accédez à la console Cloud Run à l'adresse https://console.cloud.google.com/run et supprimez le service crf-http-codelab
.
Si vous choisissez de supprimer l'intégralité du projet, vous pouvez accéder à https://console.cloud.google.com/cloud-resource-manager, sélectionner le projet que vous avez créé à l'étape 2, puis cliquer sur "Supprimer". Si vous supprimez le projet, vous devrez le modifier dans Cloud SDK. Vous pouvez afficher la liste de tous les projets disponibles en exécutant gcloud projects list
.