Как условно выделить точку Azure для сайта vpn в Terraform? - PullRequest
0 голосов
/ 18 июня 2019

Как вы условно предоставляете VPN-подключение к сайту для текущего Azure VPN-шлюза?Я хочу P2S VPN для VPN-шлюза dev / qa, но не prod.Я попытался использовать атрибут 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}"
    }       
  }

Terraform 11 для windows

1 Ответ

1 голос
/ 18 июня 2019

Ошибка произошла из-за того, что параметр count работает на уровне ресурсов.vpn_client_configuration является необязательным аргументом в блоке azurerm_virtual_network_gateway .Вы можете попробовать использовать count на уровне блоков шлюза VPN, что-то будет примерно так:

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: петли, если-statements и gotchas

В Terraform логическое значение true преобразуется в 1, а логическое значение false преобразуется в 0.

Если установлено значение 1на ресурсе вы получаете одну копию этого ресурса, и если установить значение 0, этот ресурс вообще не создается.

Надеюсь, это может вам помочь.

...