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 avec Google Cloud 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 une présentation des types de fonctions que vous pouvez déployer, consultez Écrire des fonctions Cloud Run.
Les utilisateurs qui déploient des fonctions doivent disposer du rôle IAM de 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, le nomfunction-1
sera attribué à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'exécution compatibles, consultez Compatibilité des environnements 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 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.
- Vous pouvez utiliser la console Google Cloud , ainsi que la gcloud CLI (
gcloud run deploy
). - Les étapes pour spécifier les déclencheurs sont légèrement différentes. Pour en savoir plus, consultez Déclencheurs et nouvelles tentatives et Exemples de déclencheurs de fonctions.
- Cloud Run offre un plus large éventail 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
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, la fonction dispose par défaut d'une URL de point de terminaison HTTP cloudfunctions.net
. Si vous prenez cette fonction et que vous 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 disposeront pas d'URL de point de terminaison HTTP cloudfunctions.net
. Une URL cloudfunctions.net
et une URL run.app
de fonction se comportent exactement de la même manière. Elles sont interchangeables et sont utilisées pour déclencher votre fonction.
Exemples Terraform
Pour obtenir des exemples de déploiement de 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 qu'avec 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 pour la mise en réseau Cloud Run.
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 avec quelques avantages supplémentaires :