如果count参数设置为0,则会破坏条件资源

时间:2019-06-04 19:12:16

标签: azure terraform

我有一个VNET /应用服务集成要求。这需要创建一个VPN网关。

集成完成后,将证书(由App Service生成)与VPN网关的点对点配置相关联。

如果由于需要执行一些更改而需要再次运行terraform,它将检测到VPN网关必须销毁,因为在Azure中它具有证书!

我考虑过在VPN网关资源上使用count参数,但是如果我根据变量将count设置为0,则会遇到相同的问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试在资源的生命周期中添加django.urls import resolve语句。这是我在某些情况下使用的示例:

ignore_changes

在资源定义中对其进行如下设置(只是为了了解如何将其放入定义中):

lifecycle {
    ignore_changes = [
        "user_data",
        "instance_type",
        "root_block_device.0.volume_size",
        "ebs_optimized",
        "tags",
    ]
}

现在,在resource "aws_instance" "worker_base" { count = "..." instance_type = "..." user_data = "..." lifecycle { ignore_changes = [ "user_data", "instance_type", "root_block_device.0.volume_size", "ebs_optimized", "tags", ] } tags = { Name = "..." } root_block_device { delete_on_termination = .. volume_size = "..." volume_type = "..." } } 输出中,您应该看到已更改的参数,因此需要新的资源。尝试在terraform plan列表中进行设置...