如何使用用户提供的变量访问嵌套映射中的元素?



我正试图找出根据输入变量从映射变量查找多个值的最佳方法。在本例中,输入的是vSphere交换机端口组的名称。

例如,给定以下信息:

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"
}

我希望能够查找"网络","netmask","网关"。基于我模块中的network变量。

考虑以下变量(这基本上是您的network模块变量):

variable "my_network" {
type    = string
default = "port-group-web.dmz"
}

现在,如果我点击var.networks[<my variabl>],我可以访问地图:

$ 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"
}

最新更新