Cette page vous explique comment déployer une fonction Cloud depuis votre ordinateur local à l'aide de l'outil de ligne de commande gcloud
. Lorsque vous utilisez l'outil de ligne de commande, Cloud Functions crée un package à partir du contenu du répertoire de votre fonction et l'importe dans un bucket Cloud Storage. Il exclut automatiquement les fichiers inutiles à l'aide du fichier .gcloudignore
.
Vous pouvez également utiliser l'interface Cloud Functions dans Cloud Console pour importer un fichier ZIP que vous avez créé vous-même.
Pour obtenir un exemple complet exécutable et incluant un exemple de code téléchargeable, consultez le guide de démarrage rapide Utiliser l'outil de ligne de commande gcloud.
Effectuer un déploiement à l'aide de l'outil gcloud
Utilisez l'outil de ligne de commande gcloud
pour déployer votre fonction depuis le répertoire contenant son code à l'aide de la commande gcloud functions deploy
:
gcloud functions deploy NAME --entry-point ENTRY-POINT --runtime RUNTIME TRIGGER [FLAGS...]
Consultez les arguments de cette commande en tenant compte de la terminologie décrite dans la section Concepts de base :
Argument | Description |
---|---|
NAME |
Nom enregistré de la fonction Cloud que vous déployez.
L'argument NAME ne peut contenir que des lettres, des chiffres, des traits de soulignement et des tirets. NAME peut être le nom d'une fonction dans votre code source ou une chaîne personnalisée (par exemple, my-http-function ). Si vous utilisez une chaîne personnalisée, vous devez également employer l'option --entry-point pour spécifier une fonction contenue dans votre code et indiquer à la commande deploy quelle fonction exécuter.
|
--entry-point ENTRY-POINT |
Nom d'une fonction ou d'une classe dans votre code source. Cette option s'utilise principalement de deux façons :
|
--runtime RUNTIME |
Nom de l'environnement d'exécution que vous utilisez. Pour obtenir la liste complète, consultez la documentation de référence sur gcloud . Notez que vous devez inclure cette option lors du déploiement initial d'une fonction, mais vous pouvez l'omettre pour les déploiements ultérieurs.
|
TRIGGER |
Type de déclencheur pour cette fonction (consultez la page Événements et déclencheurs). Les règles permettant de spécifier des déclencheurs lors du déploiement d'une fonction sont les suivantes :
|
FLAGS... |
(Facultatif) Options supplémentaires que vous pouvez spécifier lors du déploiement, telles que --stage-bucket ou --source . Pour accéder aux informations complètes, consultez la documentation sur gcloud functions deploy .
|
Chaque environnement d'exécution possède ses propres exigences en matière d'organisation des fichiers permettant à Cloud Functions de trouver la définition de votre fonction.
Exemple de fonction HTTP
Il existe trois types de fonctions Cloud : les fonctions HTTP, les fonctions d'arrière-plan et les fonctions CloudEvent. Pour consulter un exemple illustrant le déploiement d'une fonction basée sur des événements, reportez-vous à la section Exemple de fonction basée sur des événements.
Exemple Java
L'exemple suivant déploie une fonction HTTP écrite en Java et lui associe un déclencheur grâce à l'option --trigger-http
:
gcloud functions deploy my-java-function --entry-point com.example.MyFunction --runtime java11 --trigger-http --allow-unauthenticated
Consultez les arguments de cette commande :
Argument | Description |
---|---|
my-java-function |
Nom enregistré de la fonction Cloud que vous déployez. Dans le cas présent, my-java-function . Il s'agit d'un nom personnalisé que vous choisissez.
Celui-ci ne peut contenir que des lettres, des chiffres, des traits de soulignement et des tirets.
|
--entry-point |
Nom complet d'une classe Java dans votre code source. Dans cet exemple, com.example.MyFunction . |
--runtime java11 |
Environnement d'exécution pour cette fonction. Dans le cas présent, il s'agit de java11 . |
--trigger-http |
Type de déclencheur pour cette fonction, dans ce cas une requête HTTP (webhook). |
--allow-unauthenticated |
Indique que la fonction ne nécessite pas d'authentification pour être appelée. Par défaut, les fonctions HTTP nécessitent une authentification. Si vous n'incluez pas cette option lors du déploiement initial d'une fonction HTTP, vous êtes invité à autoriser les appels sans authentification. Cette invitation n'est pas répétée lors d'appels ultérieurs. |
Exemple Python
La syntaxe est la même que celle utilisée dans l'option --entry-point
pour déployer une fonction HTTP autre que Java. Dans cet exemple, le nom enregistré est my-python-function
et la fonction est helloworld
:
gcloud functions deploy my-python-function --entry-point helloworld --runtime python37 --trigger-http --allow-unauthenticated
Si vous exécutez la même commande, mais sans l'option entry-point
, l'argument NAME (nom enregistré) doit être une fonction de votre code source (dans cet exemple, helloworld
) :
gcloud functions deploy helloworld --runtime python37 --trigger-http --allow-unauthenticated
Exemple de fonction basée sur des événements
L'exemple suivant permet de déployer une fonction basée sur des événements écrite en Node.js 12 et qui sera déclenchée par Cloud Storage :
gcloud functions deploy helloGCS --runtime nodejs12 --trigger-resource TRIGGER_BUCKET_NAME --trigger-event google.storage.object.finalize
Consultez les arguments de cette commande :
Argument | Description |
---|---|
helloGCS |
Nom enregistré de la fonction Cloud que vous déployez. Dans le cas présent, helloGCS . Comme cette commande n'utilise pas l'option --entry-point , il doit s'agir du nom de la fonction dans votre code source à exécuter lors du déploiement.
|
--runtime nodejs12 |
Environnement d'exécution pour cette fonction. Dans le cas présent, il s'agit de nodejs12 . |
--trigger-resource |
Ressource de déclenchement pour cette fonction. La ressource de déclenchement spécifie la ressource pour laquelle l'événement de déclenchement est observé. Dans le cas présent, la ressource correspond au nom (TRIGGER_BUCKET_NAME ) du bucket Cloud Storage qui déclenche la fonction.
|
--trigger-event |
Événement de déclenchement pour cette fonction, qui spécifie l'action devant déclencher la fonction. Dans le cas présent, l'événement est google.storage.object.finalize .
|
L'utilisation des options --trigger-resource MY_RESOURCE
et --trigger-event MY_EVENT
est le moyen le plus explicite de spécifier un déclencheur pour une fonction basée sur des événements. Cependant, gcloud
fournit des raccourcis pour Pub/Sub et Cloud Storage :
Lorsque vous déployez des fonctions auxquelles sont associés des déclencheurs Pub/Sub, vous pouvez utiliser l'option
--trigger-topic MY_TOPIC
. Cette option est un raccourci pour--trigger-resource MY_TOPIC --trigger-event google.pubsub.topic.publish
.Lorsque vous déployez des fonctions auxquelles sont associés des déclencheurs Cloud Storage, vous pouvez utiliser l'option
--trigger-bucket MY_STORAGE_BUCKET
afin de déclencher l'exécution des fonctions lorsque les fichiers du bucket spécifié font l'objet de modifications.
Étapes suivantes
- Appeler des fonctions HTTP
- Appeler des fonctions du déclencheur Cloud Storage
- Appeler des fonctions du déclencheur Cloud Pub/Sub
- Tutoriel sur les fonctions HTTP Cloud Functions
- Tutoriel Cloud Functions avec Cloud Storage
- Tutoriel Cloud Functions avec Cloud Pub/Sub