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 la 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 découvrir les 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 Développeur Cloud Functions ou d'un rôle comprenant les mêmes autorisations. Consultez également 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
deviendraFunction_1
dans Cloud Run.Le flag
--region
spécifie la région dans laquelle déployer votre fonction. Consultez Emplacements pour obtenir la liste des régions compatibles avec Cloud Run.Le flag
--runtime
spécifie l'environnement d'exécution de langage que votre fonction utilise. Pour obtenir la liste des ID d'environnement d'exécution acceptés, consultez Prise en charge des environnements d'exécution.Le flag
--source
spécifie l'emplacement du code source de votre fonction.Le flag
--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 ce flag 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 la fonction.Pour spécifier le déclencheur de votre fonction, des flags supplémentaires (représentés par
TRIGGER_FLAGS
ci-dessus) sont requis, en fonction du déclencheur que vous souhaitez utiliser :Flags du déclencheur Description du déclencheur --trigger-http
Déclenche la fonction avec une requête HTTP(S). --trigger-topic=YOUR_PUBSUB_TOPIC
Déclenche la fonction lorsqu'un message est publié dans le sujet Pub/Sub spécifié. --trigger-bucket=YOUR_STORAGE_BUCKET
Déclenche la fonction lorsqu'un objet est créé ou écrasé dans le bucket Cloud Storage spécifié. --trigger-event-filters=EVENTARC_EVENT_FILTERS
Déclenche 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 flags, consultez la documentation sur
gcloud functions deploy
.Pour en savoir plus sur les flags 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
). - La procédure de spécification des déclencheurs est légèrement différente. Pour en savoir plus, consultez Déclencheurs et nouvelles tentatives et Exemples de déclencheurs de fonction.
- 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, elle dispose par défaut d'une URL de point de terminaison HTTP cloudfunctions.net
. Si vous déployez cette fonction sur Cloud Run, elle reçoit également une URL de point de terminaison HTTP run.app
. Toutefois, les fonctions créées dans Cloud Run ne disposent pas d'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. 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 Bonnes pratiques pour la mise en réseau Cloud Run.
Déployer des fonctions Cloud Run sur Cloud Run
La procédure de déploiement de fonctions sur Cloud Run est semblable à celle décrite dans ce document, mais elle présente des avantages supplémentaires :