web-dev-qa-db-ja.com

ブロック内の属性の変更を無視する方法

私はAzureにWebアプリを展開しています。scm_type属性の変更を無視したいsite_configブロック。

展開中SCM_TYPE属性に設定されています(== --- ==)NONE以降、それを変更していますAzure Portalでさまざまなものに。

現在のTFコードは次のようになります。

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
    ]
  }
}
 _

インフラストラクチャの更新中のSCM_TYPEの変更を無視することを期待していますが、なし。 LINEからTerraForm Plan出力:

~ scm_type = "BitbucketGit" -> "None" _

9
szymon

それはTerraformのバグでした: https://github.com/hashicorp/terraform/issues/21433 マイ構文は正しい、バージョン0.12.4では再び働きます。

8
szymon

私はあなたが無視の変更であなたの構文を修正する必要があると思います。それはこのように見えるべきです、または少なくとも私が仕事をすることができたことから。

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

これが構文を持つドキュメントです。

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

6
Jamie