如何有条件地为当前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
答案 0 :(得分:1)
发生错误是因为 count 参数在资源级别上有效。 vpn_client_configuration
是azurerm_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,则根本不会创建该资源。
希望这可以为您提供帮助。