Utiliser Terraform en tant qu’outil de code pour Azure Developer CLI
Azure Developer CLI (azd) prend en charge plusieurs infrastructures en tant que fournisseurs de code (IaC), notamment :
Par défaut, azd
bicep est le fournisseur IaC. Reportez-vous à l’article Compare Terraform et Bicep pour déterminer le fournisseur IaC le mieux adapté à votre projet.
Remarque
Terraform est toujours en version bêta. En savoir plus sur la prise en charge des fonctionnalités alpha et bêta sur la page gestion des versions et stratégies de mise en production des fonctionnalités
Conditions préalables
- Installer et configurer Terraform
- Installer et se connecter à Azure CLI (v 2.38.0+)
- Passez en revue le diagramme d’architecture et les ressources Azure que vous allez déployer dans le modèle Node.js ou Python Terraform.
Remarque
Bien qu’il azd
ne s’appuie pas sur une connexion Azure CLI, Terraform requiert Azure CLI. Pour en savoir plus sur cette exigence, consultez la documentation officielle de Terraform.
Configurer Terraform en tant que fournisseur IaC
Ouvrez le
azure.yaml
fichier trouvé à la racine de votre projet et vérifiez que vous disposez des lignes suivantes pour remplacer la valeur par défaut, qui est Bicep :infra: provider: terraform
Ajoutez tous vos
.tf
fichiers auinfra
répertoire trouvé à la racine de votre projet.Exécutez
azd up
.
Remarque
Consultez ces deux modèles azd avec Terraform en tant que fournisseur IaC : Node.js et Terraform et Python et Terraform.
azd pipeline config
pour Terraform
Terraform stocke l’état de votre infrastructure managée et de votre configuration. En raison de ce fichier d’état, vous devez activer l’état distant avant d’exécuter azd pipeline config
pour configurer votre pipeline de déploiement dans GitHub.
Par défaut, azd
suppose l’utilisation du fichier d’état local. Si vous avez exécuté azd up
avant d’activer l’état distant, vous devez exécuter azd down
et basculer vers le fichier d’état distant.
État local et distant
Terraform utilise des données d’état persistantes pour suivre les ressources qu’il gère.
Scénarios d’activation de l’état distant :
- Pour autoriser l’accès partagé aux données d’état et permettre à plusieurs personnes de travailler ensemble sur cette collection de ressources d’infrastructure
- Pour éviter d’exposer des informations sensibles incluses dans le fichier d’état
- Pour réduire la probabilité de suppression accidentelle en raison du stockage de l’état localement
Activer l’état distant
Veillez à configurer un compte de stockage d’état distant.
Ajoutez un nouveau fichier appelé
provider.conf.json
dans leinfra
dossier.{ "storage_account_name": "${RS_STORAGE_ACCOUNT}", "container_name": "${RS_CONTAINER_NAME}", "key": "azd/azdremotetest.tfstate", "resource_group_name": "${RS_RESOURCE_GROUP}" }
Mise à jour
provider.tf
trouvée dans leinfra
dossier pour définir le serveur principal sur distant# Configure the Azure Provider terraform { required_version = ">= 1.1.7, < 2.0.0" backend "azurerm" { }
Exécutez
azd env set <key> <value>
pour ajouter une configuration dans le.env
fichier. Par exemple :azd env set RS_STORAGE_ACCOUNT your_storage_account_name azd env set RS_CONTAINER_NAME your_terraform_container_name azd env set RS_RESOURCE_GROUP your_storage_account_resource_group
Exécutez la commande suivante
azd
en fonction de votre flux de travail habituel. Lorsque l’état distant est détecté,azd
initialise Terraform avec la configuration back-end configurée.Pour partager l’environnement avec des collègues, assurez-vous qu’ils s’exécutent
azd env refresh -e <environmentName>
pour actualiser les paramètres d’environnement dans le système local et effectuez l’étape 4 pour ajouter la configuration dans le.env
fichier.
Voir aussi
- En savoir plus sur la dépendance de Terraform sur Azure CLI.
- Pour plus d’informations sur l’état distant, consultez stocker l’état Terraform dans Stockage Azure.
- Modèle : React Web App avec l’API Node.js et MongoDB (Terraform) sur Azure
Étapes suivantes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour