Partager via


Mettre à jour les ressources Azure managées par Terraform en dehors de Terraform

Bien qu’il ne soit pas recommandé de modifier les ressources managées par Terraform en dehors de Terraform en raison du risque de perte de données, certaines fonctionnalités nécessitent que vous le fassiez. En raison des risques, il est essentiel de mettre à jour correctement les ressources à l’aide des étapes décrites.

Les ressources managées par Terraform stockent leur état dans le terraform.tfstate situé dans l’un des clouds Terraform du module Terraform local. L’état contient toutes les propriétés de la ressource distante pertinente pour Terraform. Lorsqu’une ressource managée par Terraform est modifiée en dehors de Terraform, l’état Terraform ne correspond pas aux propriétés de la ressource distante. Dans sa tentative de résolution de l’incohérence, Terraform est susceptible de détruire et de recréer la ressource distante, ce qui entraîne une perte de données.

Protéger les ressources managées par Terraform avec le cycle de vie

Pour éviter toute perte de données sur une ressource Azure qui inclut des ressources volatiles, vous devez utiliser l’argument de cycle de vie prevent_destroy dans le fichier de configuration Terraform. Par exemple :

resource "azure_netapp_volume" "example {
    lifecycle{
        prevent_destroy = true
    }

}

Modifier une ressource managée par Terraform en dehors de Terraform

Les instructions suivantes constituent une vue d’ensemble des étapes requises pour mettre à jour une ressource managée par Terraform en dehors de Terraform.

  1. Accédez au fichier de configuration du module Terraform. L’extension du fichier de configuration est .tf ou .tf.json.
  2. Dans le fichier de configuration du volume managé par Terraform (main.tf), recherchez le bloc de configuration du cycle de vie. Modifiez le bloc avec ignore_changes = <property>, en affectant la valeur de propriété appropriée pour la fonctionnalité que vous utilisez. S’il n’existe aucun bloc de configuration de cycle de vie, ajoutez-le :
    lifecycle {
        ignore_changes = <property>
    }
    
  3. Apportez la modification souhaitée au volume Azure NetApp Files.
  4. Exécutez terraform plan pour confirmer qu’aucune modification ne sera apportée à votre volume. La sortie de l’interface CLI doit afficher : No changes. Your infrastructure matches the configuration.

    Remarque

    La commande terraform plan crée un fichier de plan avec les modifications apportées à la ressource distante, ce qui vous permet de garantir la sécurité de votre ressource avant d’appliquer des modifications.

  5. Exécutez terraform apply pour appliquer les modifications. Vous devez voir la même sortie d’interface CLI qu’à l’étape précédente.

Étapes suivantes