Guide de démarrage rapide : déployer une fonction Cloud Run à l'aide de gcloud CLI
Cette page vous explique comment déployer une fonction HTTP Cloud Run à l'aide de la 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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
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:
gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/run.sourceDeveloper, roles/run.admin, roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountUser, roles/serviceusage.serviceUsageAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
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:
gcloud services enable artifactregistry.googleapis.com
cloudbuild.googleapis.com run.googleapis.com logging.googleapis.com -
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/run.sourceDeveloper, roles/run.admin, roles/resourcemanager.projectIamAdmin, roles/iam.serviceAccountUser, roles/serviceusage.serviceUsageAdmin
gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For example,user:myemail@example.com
. - Replace
ROLE
with each individual role.
- Replace
- 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.
- Attribuez le rôle IAM suivant au compte de service Cloud Build.
Cliquez ici pour afficher les rôles requis pour le compte de service Cloud Build
Cloud Build utilise automatiquement le compte de service Compute Engine par défaut comme compte de service Cloud Build par défaut pour compiler votre code source et votre ressource Cloud Run, sauf si vous modifiez ce comportement. Pour que Cloud Build puisse créer vos sources, demandez à votre administrateur d'accorder le rôle Créateur Cloud Run (
roles/run.builder
) au compte de service Compute Engine par défaut sur votre projet :gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role=roles/run.builder
Remplacez
PROJECT_NUMBER
par le numéro de votre projet Google CloudetPROJECT_ID
par l'ID de votre 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.L'attribution du rôle "Compte de service Cloud Run" au compte de service Compute Engine par défaut prend quelques minutes à se propager.
É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 :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 :
Ruby
Créez un répertoire nommé
helloworld
et modifiez les sous-répertoires comme suit :mkdir helloworld cd helloworld
Créez un fichier nommé
app.rb
et collez-y le code suivant :Créez un fichier nommé
Gemfile
et copiez-y les éléments suivants :Si vous n'avez pas installé Bundler 2.0 ou une version ultérieure, installez Bundler.
Générez un fichier
Gemfile.lock
en exécutant :bundle install
PHP
Créez un répertoire nommé
helloworld
et modifiez les sous-répertoires comme suit :mkdir helloworld cd helloworld
Créez un fichier nommé
index.php
et collez-y le code suivant :Si vous n'utilisez pas Cloud Shell, créez un fichier
composer.json
et collez-y le code suivant :
.NET
Installez le SDK.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 run deploy nodejs-http-function \ --source . \ --function helloGET \ --base-image nodejs22 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région du service dans lequel vous souhaitez déployer votre fonction. Google CloudPar exemple,
europe-west1
.Python
gcloud run deploy python-http-function \ --source . \ --function hello_get \ --base-image python313 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région du service dans lequel vous souhaitez déployer votre fonction. Google CloudPar exemple,
europe-west1
.Go
gcloud run deploy go-http-function \ --source . \ --function HelloGet \ --base-image go123 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région du service dans lequel vous souhaitez déployer votre fonction. Google CloudPar exemple,
europe-west1
.Java
Exécutez la commande suivante dans le répertoire contenant le fichier
pom.xml
:gcloud run deploy java-http-function \ --source . \ --function functions.HelloWorld \ --base-image java21 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région du service dans lequel vous souhaitez déployer votre fonction. Google CloudPar exemple,
europe-west1
.Ruby
gcloud run deploy ruby-http-function \ --source . \ --function hello_get \ --base-image ruby34 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région du service dans lequel vous souhaitez déployer votre fonction. Google CloudPar exemple,
europe-west1
.PHP
gcloud run deploy php-http-function \ --source . \ --function helloGet \ --base-image php84 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région du service dans lequel vous souhaitez déployer votre fonction. Google CloudPar exemple,
europe-west1
..NET
gcloud run deploy csharp-http-function \ --source . \ --function HelloWorld.Function \ --base-image dotnet8 \ --region REGION \ --allow-unauthenticated
Remplacez REGION par la région du service dans lequel vous souhaitez déployer votre fonction. Google CloudPar exemple,
europe-west1
.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 le résultat de votre 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.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Étapes suivantes
Pour déployer un exemple de fonction sur Cloud Run à l'aide de la console, consultez le guide de démarrage rapide : déployer une fonction sur Cloud Run à l'aide de la console Google Cloud . 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.
Pour créer des déclencheurs avec Eventarc, consultez Créer des déclencheurs avec Eventarc.