【发布时间】:2021-03-04 19:48:19
【问题描述】:
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-Sub1 上使用 address_prefix。
发生了如下错误。
错误:属性值类型不正确
在 main.tf 第 27 行,资源“azurerm_virtual_network”“vnet”中: 27: address_prefix = ["${lookup(var.subnetAddress[var.location], "web1")}"]
属性“address_prefix”的值不合适:需要字符串。
错误:属性值类型不正确
在 main.tf 第 31 行,资源“azurerm_virtual_network”“vnet”中: 31: address_prefix = [lookup(var.subnetAddress[var.location], "web2")]
属性“address_prefix”的值不合适:需要字符串。
variable.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"
}
}
}
不知道为什么会有错误需要写成字符串格式,为什么不能带数据。
【问题讨论】:
标签: terraform