Terraform 地形12嵌套映射
我只想请您帮助我如何从变量的嵌套变量中获取main.tf文件的值Terraform 地形12嵌套映射,terraform,terraform0.12+,Terraform,Terraform0.12+,我只想请您帮助我如何从变量的嵌套变量中获取main.tf文件的值 PETS = { dog = { indoor = "poodle" outdoor = "labrador" others = "bulldog" } cat = { indoo
PETS = {
dog = {
indoor = "poodle"
outdoor = "labrador"
others = "bulldog"
}
cat = {
indoor = "siamese"
outdoor = "persian"
others = "bengal"
}
}
变量。tfvars
PETS = {
dog = {
indoor = "poodle"
outdoor = "labrador"
others = "bulldog"
}
cat = {
indoor = "siamese"
outdoor = "persian"
others = "bengal"
}
}
变量。tf
variable PETS { type = map }
module "lambda-module" {
source = "../../module/lambda-module"
PETS = var.PETS[var.TYPE[var.BREED]]
}
main.tf
variable PETS { type = map }
module "lambda-module" {
source = "../../module/lambda-module"
PETS = var.PETS[var.TYPE[var.BREED]]
}
我希望执行它,并使用以下命令获取适当的值并分配给lambda模块:
terraform plan -var-file=variables.tf -var "TYPE=dog" -var "BREED=outdoor"
但是我遇到了这个问题:
Error: Invalid index
on main.tf line 3, in module "lambda-module":
3: PETS = var.PETS[var.TYPE[var.BREED]]
|----------------
| var.TYPE is "dog"
| var.BREED is "outdoor"
您的问题在:var.PETS[var.TYPE[var.BREED]
应该是:
var.PETS[var.TYPE][var.BREED]
以下是一个例子:
variable PETS {
type = map
default = {
"dog" = {
indoor = "poodle"
outdoor = "labrador"
others = "bulldog"
},
"cat" = {
indoor = "siamese"
outdoor = "persian"
others = "bengal"
}
}
}
variable TYPE {
type = string
}
variable BREED {
type = string
}
output "TYPE_BREED" {
value = var.PETS[var.TYPE][var.BREED]
}
您的问题在:var.PETS[var.TYPE[var.BREED]
应该是:
var.PETS[var.TYPE][var.BREED]
以下是一个例子:
variable PETS {
type = map
default = {
"dog" = {
indoor = "poodle"
outdoor = "labrador"
others = "bulldog"
},
"cat" = {
indoor = "siamese"
outdoor = "persian"
others = "bengal"
}
}
}
variable TYPE {
type = string
}
variable BREED {
type = string
}
output "TYPE_BREED" {
value = var.PETS[var.TYPE][var.BREED]
}