如何在Terraform中有条件地将Azure点配置到站点VPN?

时间:2019-06-17 21:57:46

标签: terraform terraform-provider-azure

如何有条件地为当前Azure VPN网关提供指向站点VPN的点?我想要用于dev / qa VPN网关的P2S VPN,但不想要产品。我尝试使用带有布尔变量的count属性,但是terraform不喜欢这样(vpn_client_configuration.0:无效或未知键:count)

vpn_client_configuration {
    count = "${var.p2s_vpn_enabled}" 

    address_space =  ["${var.p2s_vpn_address_space}"]

    root_certificate {
      name = "${var.p2s_vpn_root_cert_name}"
      public_cert_data = "${var.p2s_vpn_root_cert_base64_data}"
    }       
  }

用于Windows的Terraform 11

1 个答案:

答案 0 :(得分:1)

发生错误是因为 count 参数在资源级别上有效。 vpn_client_configurationazurerm_virtual_network_gateway块中的可选参数。您可以尝试在VPN网关块级别使用count,就像这样,

resource "azurerm_virtual_network_gateway" "test" {
  count = "${var.p2s_vpn_enabled}"
  name                = "test"
  location            = "${azurerm_resource_group.test.location}"
  resource_group_name = "${azurerm_resource_group.test.name}"

  type     = "Vpn"
  vpn_type = "RouteBased"
...
}

此外,还有一篇很好的文章分享了Terraform tips & tricks: loops, if-statements, and gotchas

  

在Terraform中,布尔值true转换为1,布尔值false   转换为0。

     

如果将某资源的计数设置为1,则会获得该资源的一个副本   并且如果将count设置为0,则根本不会创建该资源。

希望这可以为您提供帮助。