1. Introduction
Présentation
Cloud Run Functions est une nouvelle façon de déployer des charges de travail à l'aide des paradigmes d'événement et de la signature de fonction GCF familiers. Au lieu d'utiliser notre processus de compilation et nos configurations de déploiement, Cloud Run Functions vous permet de contrôler directement le service sous-jacent créé sur Cloud Run.
Avec Cloud Run Functions, nous fournissons l'interface utilisateur simple du déploiement de code source Cloud Run, ce qui permet aux développeurs de contrôler entièrement leurs charges de travail à l'aide des configurations Cloud Run.
Cet atelier de programmation utilise des exemples nodejs. Toutefois, vous pouvez utiliser les exemples de code Cloud Functions 2nd gen dans la langue 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 gcloud CLI
Tout d'abord, vous devez installer une version récente de la gcloud CLI. Vous pouvez mettre à jour la CLI en exécutant la commande suivante :
gcloud components update
Configurer des variables d'environnement
Vous pouvez définir des 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 pouvoir 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
Commencez par créer un répertoire pour le code source et accédez-y.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Créez ensuite un fichier package.json avec le contenu suivant :
{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
Créez ensuite 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 image de conteneur prête pour la production.
Remarques :
- L'indicateur "–source" est utilisé pour indiquer à Cloud Run de compiler la fonction dans un service basé sur un conteneur exécutable.
- Le nouveau flag "–function" permet de définir le point d'entrée du nouveau service sur la signature de la fonction que vous souhaitez appeler.
- (facultatif) l'option "–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 celui d'un compte principal disposant 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 !
Bravo ! Vous avez terminé cet 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 involontaires (par exemple, si les services Cloud Run sont invoqués par inadvertance plus de fois que votre quota mensuel d'invocations Cloud Run dans le niveau sans frais), vous pouvez supprimer Cloud Run ou le projet que vous avez créé à l'étape 2.
Pour supprimer la fonction Cloud Run, accédez à la console Cloud Run à l'adresse https://console.cloud.google.com/run, puis 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 choisir "Supprimer". Si vous supprimez le projet, vous devrez changer de projet dans votre SDK Cloud. Vous pouvez afficher la liste de tous les projets disponibles en exécutant gcloud projects list.