如何防止terraform破坏和重新创建azure虚拟机扩展?生命周期代码块不起作用。Terraform持续破坏资源,当我启用锁时失败。有没有人能告诉我我哪里出错了?
这是我的代码
resource "azurerm_virtual_machine_extension" "dsc" {
for_each = var.dsc_agent_name
name = each.key
virtual_machine_id = each.value
publisher = "Microsoft.Powershell"
type = "DSC"
type_handler_version = "2.0"
auto_upgrade_minor_version = "true"
tags = local.tags
lifecycle {
prevent_destroy = true
}
settings = <<SETTINGS
{
"ModulesUrl":"",
"SasToken":"",
"WmfVersion": "latest",
"Privacy": {
"DataCollection": ""
},
"ConfigurationFunction":""
}
SETTINGS
}
您可以尝试在:
lifecycle {
prevent_destroy = true
ignore_changes = [ VMDiagnosticsSettings ]
}
这样,它将忽略在Azure资源上设置的内容以及在TF
中声明的内容(如果本节有的话)。尝试删除生命周期块,然后运行'terraform plan' -它应该会显示哪个配置项导致它被销毁/重新创建
设法解决这个问题-我基本上使用忽略所有属性的更改非常感谢@MarkoE和AC81