如何在地形中引用地图变量?<Azure>



main.tf写道:

terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 2.26"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name     = "Product-RG"
location = var.location
}
resource "azurerm_virtual_network" "vnet" {
resource_group_name = azurerm_resource_group.rg.name
name          = "Product-VNet"
address_space = [lookup(var.vnetAddress, var.location)]
location      = var.location
subnet {
name           = "Web-Sub1"
address_prefix = ["${lookup(var.subnetAddress[var.location], "web1")}"]
}
subnet {
name           = "Web-Sub2"
address_prefix = [lookup(var.subnetAddress[var.location], "web2")]
}

在Web-Sub1中,我最初像Web-Sub2一样使用address_prefix,但在错误发生后,现在我正在尝试在Web-Sub 1上使用address_prifx。

出现如下错误

错误:属性值类型不正确

在主.tf行27上;azurerm_virtual_network"vnet":27:address_prefix=["${lookup(var.subnetAddress[var.location],"web1"(}"]

属性"的值不合适;address_prefix":需要字符串。

错误:属性值类型不正确

在主.tf行31上;azurerm_virtual_network"vnet":31:address_prefix=[lookup(var.subnetAddress[var.location],"web2"(]

属性"的值不合适;address_prefix":需要字符串。

变量。tf写入:

variable "location" {}
variable "vnetAddress" {
type = map
default = {
westus = "192.168.1.0/27"
eastus = "192.168.11.0/27"
}
}
variable "subnetAddress" {
type = map
default = {
westus = {
web1 = "192.168.1.0/27"
web2 = "192.168.1.32/27"
was1 = "192.168.1.64/27"
was2 = "192.168.1.96/27"
db1 = "192.168.1.128/27"
db2 = "192.168.1.160/27"
}
eastus = {
web1 = "192.168.11.0/27"
web2 = "192.168.11.32/27"
was1 = "192.168.11.64/27"
was2 = "192.168.11.96/27"
db1 = "192.168.11.128/27"
db2 = "192.168.11.160/27"
}
}
}

我想知道为什么有一个错误需要用字符串格式写,为什么我不能带来数据。

您就快到了,只是address_prefix参数需要是一个字符串,并且您正在传递一个字符串列表address_prefix = [lookup(var.subnetAddress[var.location], "web2")]

subnet {
name           = "Web-Sub1"
address_prefix = lookup(var.subnetAddress[var.location], "web1")
}
subnet {
name           = "Web-Sub2"
address_prefix = lookup(var.subnetAddress[var.location], "web2")
}

这应该行得通。

参考azurerm_virtual_network资源,address_prefix是作为字符串而不是字符串列表传递的。

最新更新