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.
-
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.
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:
- Vous pouvez utiliser la console Google Cloud , ainsi que la gcloud CLI (
gcloud run deploy
). - La procédure de spécification des déclencheurs est légèrement différente. Pour en savoir plus, consultez les sections Déclencheurs et nouvelles tentatives et Exemples de déclencheurs de fonction.
- Cloud Run offre un éventail plus large d'options de configuration :
- Nombre minimal d'instances
- Simultanéité
- Configuration des conteneurs
- Limites de processeur
- Limites de mémoire
- Délai avant expiration de la requête
- Secrets
- Variables d'environnement
- Environnement d'exécution
- HTTP/2
- Comptes de service
- Connexions Cloud SQL
- Affinité de session et répartition du trafic
- Tags
- Mise en réseau