【问题标题】:Proper format of IP address list for Azure Application GatewayAzure 应用程序网关的 IP 地址列表的正确格式
【发布时间】:2018-09-01 05:11:51
【问题描述】:

我正在创建一个 Terraform 配置以在 Azure 中部署一个应用程序网关,该网关将位于配置为使用内部负载均衡器的应用服务环境 (ASE) 前面。我使用 shell 脚本从 Azure Cloud Shell 运行我的 terraform 配置。在 shell 脚本中,我运行 AZ CLI 命令来获取 ASE 内部负载均衡器的 IP 地址,然后将其作为命令行变量输入到 Terraform 配置中。我不断收到一条错误消息,提示 ip_address_list 应该是一个列表,但我不确定这意味着什么格式。

下面是我用来获取 IP 地址的命令:

ilbase_virtual_ip=$(
  az resource show \
  --ids "/subscriptions/$subscription_id/resourceGroups/$ilbase_rg_name/providers/Microsoft.Web/hostingEnvironments/$ilbase_name/capacities/virtualip" \
  --query "additionalProperties.internalIpAddress"
)

这将返回格式如下的 IP 地址。我将它作为 shell 脚本的一部分进行回显,以便验证它是否已成功获取:

"10.10.1.11"

下面是我在 shell 脚本中使用的 Terraform 命令行:

terraform plan \
  -var "tfstate_access_key=$tfstate_storage_access_key" \
  -var "ilbase_virtual_ip=$ilbase_virtual_ip"

以下是我尝试应用 IP 地址的 Terraform 配置中的代码:

backend_address_pool {
  name            = "${data.terraform_remote_state.rg.vnetnamew}-beap"
  ip_address_list = "[${var.ilbase_virtual_ip}]"
}

我在没有[] 的情况下尝试过,但得到了同样的错误。

【问题讨论】:

    标签: azure terraform terraform-provider-azure terraform-template-file


    【解决方案1】:

    语法中的轻微错误是问题的原因。我正在尝试使用以下内容:

    backend_address_pool {
      name            = "${data.terraform_remote_state.rg.vnetnamew}-beap"
      ip_address_list = "[${var.ilbase_virtual_ip}]"
    }
    

    但它应该是:

    backend_address_pool {
      name            = "${data.terraform_remote_state.rg.vnetnamew}-beap"
      ip_address_list = ["${var.ilbase_virtual_ip}"]
    }
    

    【讨论】:

      猜你喜欢
      • 2013-04-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 2013-06-19
      • 1970-01-01
      • 2014-02-22
      • 2015-05-11
      相关资源
      最近更新 更多