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 :

  1. 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.

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.

  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 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.

  3. 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 :

    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 le flag --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. Les fichiers source de votre fonction doivent être situés à la racine du fichier ZIP. Consultez Structure du répertoire source.

    3. 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 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.

      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 :

      • 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.

      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 :

      • 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.

      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
      

      Étapes suivantes