Ce tutoriel explique comment déployer une fonction Pub/Sub en important un fichier ZIP de code source de fonction dans un bucket Cloud Storage, à l'aide de Terraform pour provisionner les ressources. Terraform est un outil Open Source qui vous permet de provisionner des ressources Google Cloud à l'aide de fichiers de configuration déclaratifs.
Ce tutoriel utilise une fonction Node.js comme exemple, mais il fonctionne également avec les fonctions Python, Go et Java. Les instructions sont identiques, quel que soit l'environnement d'exécution que vous utilisez. Pour en savoir plus sur l'utilisation de Terraform avec l'API Cloud Functions v2, consultez les pages de référence de Hashicorp.
Configurer votre environnement
Dans ce tutoriel, vous exécutez des commandes dans Cloud Shell. Cloud Shell est un environnement de shell dans lequel la Google Cloud CLI est déjà installée avec des valeurs prédéfinies pour votre projet actuel. L'initialisation de Cloud Shell peut prendre quelques minutes.
Préparer l'application
Dans Cloud Shell, procédez comme suit :
Clonez le dépôt de l'exemple d'application sur votre instance Cloud Shell :
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git
Accédez au répertoire contenant l'exemple de code de Cloud Run Functions :
cd terraform-docs-samples/functions/pubsub
L'exemple Node.js utilisé dans ce tutoriel est une fonction Pub/Sub de base "Hello World". Voici le fichier
main.tf
:
Initialiser Terraform
Dans le répertoire terraform-docs-samples/functions/pubsub
contenant le fichier main.tf
, exécutez cette commande pour ajouter les plug-ins nécessaires et créez le répertoire .terraform
:
terraform init
Valider la configuration Terraform
Prévisualisez la configuration Terraform. Bien que facultative, cette étape vous permet de vérifier que la syntaxe de main.tf
est correcte. Cette commande affiche un aperçu des ressources qui seront créées :
terraform plan
Appliquer la configuration Terraform
Déployez la fonction en appliquant la configuration. Lorsque vous y êtes invité, saisissez yes
.
terraform apply
Déclencher la fonction
Pour tester la fonction Pub/Sub, procédez comme suit :
Publiez un message sur le sujet (dans cet exemple, le nom du sujet est
functions2-topic
) :gcloud pubsub topics publish TOPIC_NAME --message="Friend"
Lisez les journaux de la fonction pour afficher le résultat, où
FUNCTION_NAME
correspond au nom de la fonction (dans cet exemple, le nom de la fonction estfunction
) :gcloud functions logs read FUNCTION_NAME
Les résultats de journalisation incluant votre nouveau message "Ami" doivent s'afficher.
Effectuer un nettoyage
Une fois le tutoriel terminé, vous pouvez supprimer tous les éléments que vous avez créés afin d'éviter tous frais supplémentaires.
Terraform vous permet de supprimer toutes les ressources définies dans le fichier de configuration en exécutant la commande terraform destroy
:
terraform destroy
Saisissez yes
pour autoriser Terraform à supprimer vos ressources.