Déployer une fonction Cloud Run

Ce guide vous explique comment déployer une fonction Cloud Run depuis le code source.

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 Functions ou d'un rôle comprenant les mêmes autorisations. Consultez également la section Configuration supplémentaire pour le déploiement.

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. 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 nom du service Cloud Run créé pour votre fonction remplacera les traits de soulignement par des traits d'union, et les lettres majuscules seront converties en minuscules. Par exemple, Function_1 sera nommé function-1 dans Cloud Run.

    • L'option --gen2 (facultatif) spécifie que vous souhaitez effectuer le déploiement sur des fonctions Cloud Run.

    • L'option --region spécifie la région dans laquelle déployer votre fonction. Consultez la page Emplacements pour obtenir la liste des régions compatibles avec Cloud Run Functions.

    • L'option --runtime spécifie l'environnement d'exécution de langage qui est utilisé par votre fonction. Cloud Run Functions accepte plusieurs environnements d'exécution. Pour en savoir plus, consultez la page Environnements d'exécution.

    • L'option --source spécifie l'emplacement du code source de votre fonction. Pour en savoir plus, consultez les sections suivantes :

    • L'option --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 cette option doit être un nom de fonction ou un nom de classe complet qui existe dans votre code source. Pour en savoir plus, consultez la section Point d'entrée de fonction.

    • Pour spécifier le déclencheur de votre fonction, des options supplémentaires (représentées par TRIGGER_FLAGS ci-dessus) sont requises, en fonction du déclencheur que vous souhaitez utiliser :

      Options du déclencheur Description du déclencheur
      --trigger-http Déclencher la fonction avec une requête HTTP(S) Pour en savoir plus, consultez la section Déclencheurs HTTP.
      --trigger-topic=YOUR_PUBSUB_TOPIC Déclenchez la fonction lorsqu'un message est publié dans le sujet Pub/Sub spécifié. Consultez la section Déclencheurs Pub/Sub pour plus d'informations.
      --trigger-bucket=YOUR_STORAGE_BUCKET Déclenchez la fonction lorsqu'un objet est créé ou écrasé dans le bucket Cloud Storage spécifié. Pour plus d'informations, consultez la section Déclencheurs Cloud Storage.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS Déclenchez la fonction avec Eventarc lorsqu'un événement se produit et qu'il correspond aux filtres spécifiés. Pour plus d'informations et d'options, consultez la section Déclencheurs Eventarc.

      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 options, consultez la documentation sur gcloud functions deploy.

      Pour obtenir des exemples de commandes de déploiement, consultez la section Exemples de ligne de commande.

Une fois le déploiement terminé, les fonctions apparaissent avec une coche verte sur la page de présentation de Cloud Run dans la console Google Cloud.

Le déploiement initial d'une fonction peut prendre plusieurs minutes, pendant que l'infrastructure sous-jacente est provisionnée. Le redéploiement d'une fonction existante est plus rapide, et le trafic entrant est automatiquement migré vers la version la plus récente.

Déployer une fonction depuis votre ordinateur local

Cette section décrit comment déployer une fonction à partir du code source situé sur votre ordinateur local.

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Suivez les instructions de déploiement ci-dessus à l'aide de la commande gcloud functions deploy.

    Pour l'option --source, spécifiez un chemin du système de fichiers local pour accéder au répertoire racine du code source de la fonction. Consultez la section Structure du répertoire source. Le répertoire de travail actuel est utilisé si cette option est omise.

    Vous pouvez également utiliser l'option --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 via le fichier .gcloudignore.

Déployer une fonction depuis Cloud Storage

Cette section explique comment déployer une fonction à partir d'un 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, l'agent de service Cloud Run Functions doit disposer de l'autorisation storage.objects.get. Si le bucket source se trouve dans le même projet que votre fonction, l'autorisation est accordée automatiquement. Si le bucket se trouve dans un autre projet, vous devez accorder manuellement l'autorisation à l'agent de service.

Consultez la page Utiliser des autorisations IAM de la documentation Cloud Storage pour en savoir plus sur le contrôle des accès aux buckets.

Avec cette autorisation, vous pouvez maintenant déployer une fonction à partir de Cloud Storage :

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Suivez les instructions de déploiement ci-dessus à l'aide de la commande gcloud functions deploy.

    Pour l'option --source, spécifiez un chemin d'accès Cloud Storage commençant par gs://. L'objet du chemin d'accès doit être un fichier ZIP contenant le code source de la fonction. Vos fichiers source de fonction doivent être situés à la racine du fichier ZIP. Consultez la section Structure du répertoire source.

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 :

  • La fonction utilise nodejs22.
  • Le code source se trouve dans le répertoire de travail actuel (.).
  • Le point d'entrée du code s'appelle myHttpFunction.

Pour déployer la fonction nommée my-http-function dans la région us-central1, exécutez la commande suivante :

gcloud functions deploy my-http-function \
  --gen2 \
  --region=us-central1 \
  --runtime=nodejs22 \
  --source=. \
  --entry-point=myHttpFunction \
  --trigger-http

Fonction Pub/Sub à partir du code source dans Cloud Storage

Supposons que vous ayez une fonction basée sur des événements comme suit :

  • La fonction gère les événements de publication des messages Pub/Sub.
  • La fonction utilise python312.
  • 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.

Pour déployer la fonction nommée my-pubsub-function dans la région europe-west1 et la déclencher à l'aide de messages dans le sujet Pub/Sub my-topic, exécutez la commande suivante :

gcloud functions deploy my-pubsub-function \
  --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 ayez une fonction basée sur des événements comme suit :

  • La fonction gère les événements de suppression d'objets Cloud Storage.
  • La fonction utilise java21.
  • 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.

Pour déployer la fonction nommée my-storage-function dans la région asia-northeast1 et la déclencher à l'aide d'événements dans le bucket Cloud Storage my-bucket, exécutez la commande suivante :

gcloud functions deploy my-storage-function \
  --gen2 \
  --region=asia-northeast1 \
  --runtime=java21 \
  --source=./functions/storage-function \
  --entry-point=myproject.StorageFunction \
  --trigger-event-filters="type=google.cloud.storage.object.v1.deleted" \
  --trigger-event-filters="bucket=my-bucket"

Étapes suivantes