web-dev-qa-db-fra.com

Comment ignorer le changement d'un attribut en bloc

Je déploie des applications Web à Azure et je voudrais ignorer les modifications apportées à SCM_TYPE Attribut dans Site_Config bloquer.

Pendant le déploiement, l'attribut SCM_TYPE définit sur Aucun et plus tard nous le changeons à quelque chose de différent dans le portail d'azur.

Mon code TF actuel ressemble à ceci:

resource "azurerm_app_service" "web_app" {
  count               = length(var.app_names)
  name                = var.app_names[count.index]
  location            = data.azurerm_resource_group.app_resource_group.location
  resource_group_name = data.azurerm_resource_group.app_resource_group.name
  app_service_plan_id = azurerm_app_service_plan.app_plan.id
  tags                = var.tags
  app_settings        = var.app_settings[count.index]

  site_config {
    always_on                 = true
    websockets_enabled        = var.websockets_enabled[count.index]
    use_32_bit_worker_process = var.use_32_bit_worker_process
    scm_type                  = "None"
  }

  lifecycle {
    ignore_changes = [
      site_config.0.scm_type
    ]
  }
}

J'espère que Terraform Plan d'ignorer les modifications de SCM_TYPE pendant les mises à jour de l'infrastructure, mais il essaie de revenir à Aucun . Ligne de Plan Terraform Sortie:

~ scm_type = "BitbucketGit" -> "None"

9
szymon

C'était un bug Terraform: https://github.com/hashicorp/terraform/issues/214 Ma syntaxe est correcte, dans la version 0.12.4 Cela fonctionne à nouveau.

8
szymon

Je pense que vous avez besoin de corriger votre syntaxe dans les changements d'ignorer. Cela devrait ressembler à cela, ou du moins de ce que j'ai pu me rendre au travail.

lifecycle {
    ignore_changes = [
        site_config["scm_type"],
    ]
}

Voici les documents qui ont la syntaxe.

https://www.terraform.io/docs/configuration/resources.html#lifecycle-lifecycle-Customisations

6
Jamie