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

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

  1. 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
    
  2. Ajoutez tous vos .tf fichiers au infra répertoire trouvé à la racine de votre projet.

  3. 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

  1. Veillez à configurer un compte de stockage d’état distant.

  2. Ajoutez un nouveau fichier appelé provider.conf.json dans le infra dossier.

    {
        "storage_account_name": "${RS_STORAGE_ACCOUNT}",
        "container_name": "${RS_CONTAINER_NAME}",
        "key": "azd/azdremotetest.tfstate",
        "resource_group_name": "${RS_RESOURCE_GROUP}"
    }
    
  3. Mise à jour provider.tf trouvée dans le infra dossier pour définir le serveur principal sur distant

    # Configure the Azure Provider
    terraform {
      required_version = ">= 1.1.7, < 2.0.0"
      backend "azurerm" {
      }
    
  4. 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
    
  5. 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.

  6. 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

Étapes suivantes