Déployer une fonction Cloud Run (1re génération)
Ce guide vous explique comment déployer une ancienne fonction Cloud Run de 1re génération à partir du code source. Si vous créez une fonction, consultez le guide de démarrage rapide de la console sur Cloud Run.
Le processus de déploiement utilise votre code source et vos paramètres de configuration, puis crée une image exécutable que Cloud Run Functions gère automatiquement afin de traiter les requêtes adressées à votre fonction.
Principes de base du déploiement
Les utilisateurs qui déploient des fonctions Cloud Run doivent disposer du rôle IAM Développeur Cloud Run Functions ou d'un rôle comprenant les mêmes autorisations. Consultez également Configuration supplémentaire pour le déploiement.
Déployez une fonction à l'aide de la gcloud CLI comme suit :
Exécutez la commande
gcloud functions deploy
pour déployer une fonction :gcloud functions deploy YOUR_FUNCTION_NAME \ [--gen2] \ --region=YOUR_REGION \ --runtime=YOUR_RUNTIME \ --source=YOUR_SOURCE_LOCATION \ --entry-point=YOUR_CODE_ENTRYPOINT \ TRIGGER_FLAGS
Le premier argument,
YOUR_FUNCTION_NAME
, est le nom de la fonction déployée. Le nom de la fonction doit commencer par une lettre, suivie de 62 caractères au maximum (lettres, chiffres, traits d'union ou traits de soulignement), et doit se terminer par une lettre ou un chiffre.Le flag
--gen2
spécifie que vous souhaitez effectuer le déploiement sur Cloud Run Functions. Depuis septembre 2024, il s'agit de l'option de déploiement par défaut. Pour déployer votre fonction vers la 1re génération, utilisez--no-gen2
.Le flag
--region
spécifie la région dans laquelle déployer votre fonction. Consultez Emplacements pour obtenir la liste des régions compatibles avec Cloud Run Functions.Le flag
--runtime
spécifie l'environnement d'exécution de langage que votre fonction utilise. Cloud Run Functions accepte plusieurs environnements d'exécution. Pour en savoir plus, consultez Environnements d'exécution.Le flag
--source
spécifie l'emplacement du code source de votre fonction. Consultez les sections suivantes pour plus de détails :Le flag
--entry-point
spécifie le point d'entrée de votre fonction dans votre code source. Il s'agit du code qui sera exécuté lors de l'exécution de votre fonction. La valeur de ce flag doit être un nom de fonction ou un nom de classe complet qui existe dans votre code source. Pour en savoir plus, consultez Point d'entrée de la fonction.Pour spécifier le déclencheur de votre fonction, des flags supplémentaires (représentés par
TRIGGER_FLAGS
ci-dessus) sont requis, en fonction du déclencheur que vous souhaitez utiliser :Flags du déclencheur Description du déclencheur --trigger-http
Déclenche la fonction avec une requête HTTP(S). Pour en savoir plus, consultez Déclencheurs HTTP. --trigger-topic=YOUR_PUBSUB_TOPIC
Déclenche la fonction lorsqu'un message est publié dans le sujet Pub/Sub spécifié. Pour en savoir plus, consultez Déclencheurs Pub/Sub. --trigger-bucket=YOUR_STORAGE_BUCKET
Déclenche la fonction lorsqu'un objet est créé ou écrasé dans le bucket Cloud Storage spécifié. Pour en savoir plus, consultez Déclencheurs Cloud Storage. --trigger-event=EVENT_TYPE
[--trigger-resource=RESOURCE]Déclenche la fonction lorsque l'événement spécifié se produit. La spécification d'une ressource est obligatoire pour certains types d'événements. Pour en savoir plus, consultez Déclencheurs compatibles avec Cloud Run Functions (1re génération). Vous pouvez éventuellement spécifier des options supplémentaires de configuration, de mise en réseau et de sécurité lorsque vous déployez une fonction.
Pour en savoir plus sur la commande de déploiement et ses flags, consultez la documentation sur
gcloud functions deploy
.Pour obtenir des exemples de commandes de déploiement, consultez Exemples de ligne de commande.
Déployer une fonction depuis votre ordinateur local
Cette section explique comment utiliser la gcloud CLI pour déployer une fonction à partir du code source situé sur votre ordinateur local.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Suivez les instructions de déploiement ci-dessus à l'aide de la commande
gcloud functions deploy
.Pour le flag
--source
, spécifiez un chemin d'accès au système de fichiers local pour accéder au répertoire racine du code source de la fonction. Consultez Structure du répertoire source. En cas d'omission de ce flag, le répertoire de travail actuel est utilisé.Vous pouvez également utiliser le flag
--stage-bucket
pour spécifier un bucket Cloud Storage dans lequel importer votre code source lors du déploiement.Lors de l'importation de votre code source, Cloud Run Functions exclut les fichiers inutiles par le biais du fichier
.gcloudignore
.-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Suivez les instructions de déploiement ci-dessus à l'aide de la commande
gcloud functions deploy
.Pour le flag
--source
, spécifiez un chemin d'accès Cloud Storage commençant pargs://
. L'objet du chemin d'accès doit être un fichier ZIP contenant le code source de la fonction. Les fichiers source de votre fonction doivent être situés à la racine du fichier ZIP. Consultez Structure du répertoire source.- La fonction utilise Node.js 20.
- Le code source se trouve dans le répertoire de travail actuel (
.
). - Le point d'entrée du code s'appelle
myHttpFunction
. - La fonction gère les événements de publication de messages Pub/Sub.
- La fonction utilise Python 3.12.
- Le code source se trouve dans Cloud Storage, au chemin d'accès suivant :
gs://my-bucket/my_function_source.zip
. - Le point d'entrée du code s'appelle
pubsub_handler
. - La fonction gère les événements de suppression d'objets Cloud Storage.
- La fonction utilise Java 17.
- Le code source se trouve en local, au chemin d'accès suivant :
./functions/storage-function
. - Le point d'entrée du code s'appelle
myproject.StorageFunction
. - Apprenez-en plus sur les déclencheurs Cloud Run Functions.
- Découvrez le processus de compilation Cloud Run Functions.
- Découvrez des options de configuration Cloud Run Functions supplémentaires.
- Découvrez comment sécuriser Cloud Run Functions.
Déployer une fonction depuis Cloud Storage
Cette section explique comment utiliser la gcloud CLI pour déployer une fonction à partir du code source situé dans un bucket Cloud Storage. Le code source doit être empaqueté sous la forme d'un fichier ZIP.
Pour que Cloud Run Functions puisse lire à partir d'un bucket Cloud Storage, vous devez accorder l'autorisation storage.objects.get
au compte qui effectue le déploiement.
Pour en savoir plus sur le contrôle des accès aux buckets, consultez Utiliser des autorisations IAM dans la documentation Cloud Storage.
Avec cette autorisation, vous pouvez maintenant déployer une fonction à partir de Cloud Storage :
Exemples de ligne de commande
Cette section présente des commandes de déploiement pour certains exemples de scénarios de déploiement.
Pour en savoir plus sur les différents déclencheurs compatibles avec Cloud Run Functions, consultez Déclencheurs Cloud Run Functions.
Fonction HTTP à partir du code source local
Supposons que vous disposiez d'une fonction HTTP comme suit :
Pour déployer la fonction sur Cloud Run Functions avec le nom my-http-function
dans la région us-central1
, exécutez la commande suivante :
gcloud functions deploy my-http-function \
--no-gen2 \
--region=us-central1 \
--runtime=nodejs20 \
--source=. \
--entry-point=myHttpFunction \
--trigger-http
Fonction Pub/Sub à partir du code source dans Cloud Storage
Supposons que vous disposiez d'une fonction basée sur des événements comme suit :
Pour déployer la fonction sur Cloud Run Functions avec le nom my-pubsub-function
dans la région europe-west1
et faire en sorte que la fonction soit déclenchée par des messages dans le sujet Pub/Sub my-topic
, exécutez la commande suivante :
gcloud functions deploy my-pubsub-function \
--no-gen2 \
--region=europe-west1 \
--runtime=python312 \
--source=gs://my-bucket/my_function_source.zip \
--entry-point=pubsub_handler \
--trigger-topic=my-topic
Fonction Cloud Storage à partir du code source local
Supposons que vous disposiez d'une fonction basée sur des événements comme suit :
Pour déployer la fonction sur Cloud Run Functions avec le nom my-storage-function
dans la région asia-northeast1
et faire en sorte que la fonction soit déclenchée par des événements dans le bucket Cloud Storage my-bucket
, exécutez la commande suivante :
gcloud functions deploy my-storage-function \
--no-gen2 \
--region=asia-northeast1 \
--runtime=java17 \
--source=./functions/storage-function \
--entry-point=myproject.StorageFunction \
--trigger-resource=gs://my-bucket \
--trigger-event=google.storage.object.delete