Déployer une fonction

Ce guide vous explique comment déployer une fonction à partir du code source à l'aide de la commande gcloud functions. Pour savoir comment déployer une fonction à l'aide de la commande gcloud run, consultez Déployer une fonction Cloud Run à l'aide de gcloud CLI.

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

Pour en savoir plus sur les types de fonctions que vous pouvez déployer, consultez la section Écrire des fonctions Cloud Run.

Les utilisateurs qui déploient des fonctions 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 \
       --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 --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.

    • L'option --runtime spécifie l'environnement d'exécution de langage qui est utilisé par votre fonction. Pour obtenir la liste des ID d'environnement d'exécution compatibles, consultez la section Compatibilité avec l'environnement d'exécution.

    • L'option --source spécifie l'emplacement du code source de votre fonction.

    • 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)
      --trigger-topic=YOUR_PUBSUB_TOPIC Déclenchez la fonction lorsqu'un message est publié dans le sujet Pub/Sub spécifié.
      --trigger-bucket=YOUR_STORAGE_BUCKET Déclenchez la fonction lorsqu'un objet est créé ou écrasé dans le bucket Cloud Storage spécifié.
      --trigger-event-filters=EVENTARC_EVENT_FILTERS Déclenchez la fonction avec Eventarc lorsqu'un événement correspondant aux filtres spécifiés se produit.

      Pour en savoir plus sur la commande de déploiement et ses options, consultez la documentation sur gcloud functions deploy.

      Pour en savoir plus sur les indicateurs de configuration gcloud functions deploy, consultez la documentation Cloud Run.

Une fois le déploiement terminé, les fonctions apparaissent avec une coche verte sur la page de présentation de Cloud Run dans la consoleGoogle 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.

URL du point de terminaison HTTP

Lorsque vous créez une fonction avec la commande gcloud functions ou l'API Cloud Functions v2, elle dispose par défaut d'une URL de point de terminaison HTTP cloudfunctions.net. Si vous prenez cette fonction et la déployez sur Cloud Run, votre fonction reçoit également une URL de point de terminaison HTTP run.app. Toutefois, les fonctions créées dans Cloud Run ne disposent pas d'une URL de point de terminaison HTTP cloudfunctions.net. L'URL cloudfunctions.net et l'URL run.app d'une fonction se comportent exactement de la même manière. Ils sont interchangeables et servent à déclencher votre fonction.

Exemples Terraform

Pour savoir comment déployer des fonctions à l'aide de Terraform, consultez l'exemple HTTP Terraform et l'exemple Pub/Sub Terraform.

Configurer la mise en réseau

Les fonctions créées à l'aide de l'API Cloud Functions v2 (par exemple, à l'aide de gcloud functions, de l'API REST ou de Terraform) peuvent être gérées avec l'API Cloud Run Admin ainsi que l'API Cloud Functions v2.

Pour en savoir plus sur la gestion des réseaux pour les fonctions, y compris sur le routage du trafic réseau VPC, consultez les bonnes pratiques de mise en réseau Cloud Run.

Découvrez comment déployer des fonctions Cloud Run sur Cloud Run.

Le déploiement de fonctions sur Cloud Run est semblable aux étapes décrites dans ce document, mais présente certains avantages supplémentaires: