Terraform 如何使用用户提供的变量从嵌套映射访问元素?
我试图找出根据输入变量从映射变量中查找多个值的最佳方法。在这种情况下,输入将是vSphere交换机端口组的名称 例如,根据以下信息:Terraform 如何使用用户提供的变量从嵌套映射访问元素?,terraform,Terraform,我试图找出根据输入变量从映射变量中查找多个值的最佳方法。在这种情况下,输入将是vSphere交换机端口组的名称 例如,根据以下信息: variable "networks" { type = map default = { "port-group-mail.internal" = { network = "10.0.10.0" netmask = &q
variable "networks" {
type = map
default = {
"port-group-mail.internal" = {
network = "10.0.10.0"
netmask = "24"
gateway = "10.0.10.1"
}
"port-group-web.dmz" = {
network = "10.0.50.32"
netmask = "27"
gateway = "10.0.50.33"
}
}
}
使用方法:
module "myvm" {
vm_name = "web-01"
network = "port-group-web.dmz"
}
我希望能够根据模块中的
网络变量查找“网络”、“网络掩码”、“网关”。考虑以下变量(这基本上是您的网络变量):
现在,如果我执行var.networks[]
操作,我可以访问地图:
$ terraform console
> var.my_network
"port-group-web.dmz"
> var.networks[var.my_network]
{
"gateway" = "10.0.50.33"
"netmask" = "27"
"network" = "10.0.50.32"
}
考虑以下变量(这基本上是您的网络
模块变量):
现在,如果我执行var.networks[]
操作,我可以访问地图:
$ terraform console
> var.my_network
"port-group-web.dmz"
> var.networks[var.my_network]
{
"gateway" = "10.0.50.33"
"netmask" = "27"
"network" = "10.0.50.32"
}
如果我的答案解决了你的问题,请考虑一下。如果我的答案解决了你的问题,请考虑一下。