Guide de démarrage rapide : déployer une fonction sur Cloud Run à l'aide de gcloud CLI
Cette page explique comment utiliser Cloud Run pour déployer une fonction HTTP à l'aide de gcloud CLI.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Cloud Build, Cloud Run Admin API, and Cloud Logging APIs.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Pour définir le projet par défaut pour votre service Cloud Run :
Remplacez PROJECT_ID par le nom du projet que vous avez créé pour ce guide de démarrage rapide.gcloud config set project PROJECT_ID
Si vous êtes soumis à une règle d'administration de restriction de domaine limitant les appels non authentifiés pour votre projet, vous devez accéder au service déployé comme décrit dans la section Tester les services privés.
- Pour que Cloud Build puisse créer vos sources, attribuez le rôle Compte de service Cloud Build au compte de service Compute Engine par défaut en exécutant la commande suivante :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/cloudbuild.builds.builder
Remplacez
PROJECT_NUMBER
par votre numéro de projet Google Cloud etPROJECT_ID
par votre ID de projet Google Cloud. Pour obtenir des instructions détaillées sur la recherche de votre ID et de votre numéro de projet, consultez la section Créer et gérer des projets.La propagation du rôle de compte de service Cloud Build au compte de service Compute Engine par défaut prend quelques minutes.
Écrire l'exemple de fonction
Pour écrire une application, procédez comme suit :
Node.js
Créez un répertoire nommé
helloworld
et modifiez les sous-répertoires comme suit :mkdir helloworld cd helloworld
Créez un fichier
package.json
dans le répertoirehelloworld
pour spécifier les dépendances Node.js :Créez un fichier
index.js
dans le répertoirehelloworld
avec l'exemple Node.js suivant :
Python
Créez un répertoire nommé
helloworld
et modifiez les sous-répertoires comme suit :mkdir helloworld cd helloworld
Créez un fichier
requirements.txt
dans le répertoirehelloworld
pour spécifier les dépendances Python :Cela ajoute les packages requis par l'exemple.
Créez un fichier
main.py
dans le répertoirehelloworld
avec l'exemple Python suivant :
Go
Créez un répertoire nommé
helloworld
et modifiez les sous-répertoires comme suit :mkdir helloworld cd helloworld
Initialisez un fichier
go.mod
pour déclarer le module go :Vous pouvez créer le fichier
go.mod
directement au format indiqué ou l'initialiser à partir du répertoire du projet à l'aide de la commande suivante :go mod init github.com/GoogleCloudPlatform/golang-samples/functions/functionsv2/helloworld/go.mod
Créez un fichier
hello_http.go
dans le répertoirehelloworld
avec l'exemple de code Go suivant :
Java
Créez un répertoire nommé
helloworld
et modifiez les sous-répertoires comme suit :mkdir helloworld cd helloworld
Créez la structure de projet suivante qui doit contenir le répertoire source et le fichier source :
mkdir -p ~/helloworld/src/main/java/functions touch ~/helloworld/src/main/java/functions/HelloWorld.java
Mettez à jour le fichier
HelloWorld.java
avec l'exemple de code Java suivant :Créez un fichier
pom.xml
dans le répertoirehelloworld
et ajoutez les dépendances Java suivantes :
.NET
Installez le SDK .NET Core 6.0. Ce guide de démarrage rapide ne fonctionne que pour la version 6 de .NET.
À partir de la console, créez un projet Web vide à l'aide de la commande dotnet.
dotnet new web -o helloworld-csharp
Placez-vous dans le répertoire
helloworld-csharp
:Remplacez l'exemple de code dans le fichier de projet
helloworld-csharp.csproj
par le code suivant :Remplacez l'exemple de code dans le fichier
Program.cs
par le code suivant :
Déployer la fonction
Important : Dans ce guide de démarrage rapide, nous partons du principe que vous disposez de rôles de propriétaire ou d'éditeur dans le projet que vous utilisez pour les besoins du guide de démarrage rapide. Sinon, reportez-vous au rôle Développeur source Cloud Run afin de connaître les autorisations requises pour déployer une ressource Cloud Run depuis la source.
Pour déployer votre fonction Cloud Run, procédez comme suit :
Déployez la fonction en exécutant la commande suivante dans le répertoire contenant l'exemple de code :
Node.js
gcloud beta run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs20 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région Google Cloud du service dans laquelle vous souhaitez déployer votre fonction. Par exemple,
us-central1
.Python
gcloud beta run deploy python-http-function \ --source . \ --function hello_get \ --base-image python312 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région Google Cloud du service dans laquelle vous souhaitez déployer votre fonction. Par exemple,
us-central1
.Go
gcloud beta run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go122 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région Google Cloud du service dans laquelle vous souhaitez déployer votre fonction. Par exemple,
us-central1
.Java
Exécutez la commande suivante dans le répertoire contenant le fichier
pom.xml
:gcloud beta run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java21 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région Google Cloud du service dans laquelle vous souhaitez déployer votre fonction. Par exemple,
us-central1
..NET
gcloud beta run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet6 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région Google Cloud du service dans laquelle vous souhaitez déployer votre fonction. Par exemple,
us-central1
.Une fois le déploiement terminé, Google Cloud CLI affiche une URL sur laquelle le service est en cours d'exécution. Ouvrez l'URL dans votre navigateur pour afficher la sortie de votre fonction.
Pour savoir comment ajouter des déclencheurs Eventarc à votre fonction, consultez le guide Déployer une fonction.
Effectuer un nettoyage
Bien que Cloud Run ne facture pas lorsque le service n'est pas utilisé, il se peut que des frais vous soient facturés pour le stockage de l'image de conteneur dans Artifact Registry. Vous pouvez supprimer votre image de conteneur ou votre projet Google Cloud afin d'éviter que des frais ne vous soient facturés. La suppression de votre projet Google Cloud arrête la facturation de toutes les ressources utilisées dans ce projet.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Étape suivante
Déclencher des fonctions depuis Cloud Storage à l'aide d'Eventarc
Pour déployer un exemple de fonction sur Cloud Run à l'aide de la console Google Cloud, consultez le guide de démarrage rapide : déployer une fonction sur Cloud Run à l'aide de la console Google Cloud.
Pour déployer des fonctions et créer des déclencheurs à l'aide de la console Google Cloud et de Google Cloud CLI, consultez Déployer des fonctions.
Pour afficher et supprimer des fonctions existantes, consultez la section Gérer les révisions de service.
Pour créer des conteneurs de fonctions dans votre propre chaîne d'outils et les déployer sur Cloud Run, consultez la section Créer des fonctions.