如何在Terraform中有条件地配置Azure点对点vpn?

如何在Terraform中有条件地配置Azure点对点vpn?,terraform,terraform-provider-azure,Terraform,Terraform Provider Azure,如何有条件地为当前Azure VPN网关提供点到点VPN?我想要一个用于dev/qa VPN网关的P2S VPN,但不是prod。我尝试使用带有布尔变量的count属性,但terraform不喜欢这样(VPN\u client\u配置。0:无效或未知密钥:count) Terraform 11 for windows发生错误是因为参数在资源级别工作。vpn\u客户端\u配置是块中的可选参数。您可以尝试在VPN网关块级别使用count,如下所示 resource "azurerm_virtual_

如何有条件地为当前Azure VPN网关提供点到点VPN?我想要一个用于dev/qa VPN网关的P2S VPN,但不是prod。我尝试使用带有布尔变量的count属性,但terraform不喜欢这样(VPN\u client\u配置。0:无效或未知密钥:count)


Terraform 11 for windows发生错误是因为参数在资源级别工作。
vpn\u客户端\u配置
是块中的可选参数。您可以尝试在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中,布尔真转换为1,布尔假 已转换为0

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


希望这能对您有所帮助。

您目前使用的是哪个terraform版本?terraform 11/AzureRM Provider 1.29.0您的意思是什么
我想要一个用于开发/质量VPN网关的P2S VPN,但不是产品。
?如果不需要P2S vpn连接,则无需将prod vpn块中的
vpn\u client\u配置
块设置为
vpn\u client\u配置
是可选的。@Nancyxyong Dev/QA环境应具有P2S vpn配置。Prod不应该这样做。通过使用terraform“count”属性引入条件部署,尝试在所有环境中使用相同的脚本。在开发/质量保证环境中计数应为1,但在产品环境中计数应为0。
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"
...
}