从 Terraform 地图变量中提取 Key/Values
Extract Key/Values from Terraform Map Variable
我正在尝试从 terraform 地图变量中提取左值和右值,但无法提取左值。下面是我的代码:-
variables.tf
variable "notebook" {
type = "map"
default = {
"01" = "a@a.com"
"02" = "b@a.com"
"03" = "c@a.com"
"04" = "d@a.com"
......
}
}
下面是我在 main.tf
中的模块
module "instance" {
instance_ip = ["1.1.1.x", "1.1.2.y", "1.1.1.z","1.1.2.p"]
dns = ["x", "y", "z","p"]
name = ["a", "b", "c", "d"]
}
输出应如下所示:-
module "instance" {
instance_ip = ["1.1.1.01", "1.1.2.02", "1.1.1.03","1.1.2.04" and so on]
dns = ["01", "02", "03","04" and so on]
name = ["a@a.com", "b@a.com", "c@a.com", "d@a.com and so on]
}
任何建议。我尝试查找变量但只得到 a@a.com 而不是 Key's.
您可以为此使用 keys
和 values
函数:
# terraform 0.12
module "instance" {
instance_ip = ["1.1.1.${keys(var.notebook)[0]}", "1.1.1.${keys(var.notebook)[1]}", "1.1.1.${keys(var.notebook)[2]}"]
dns = keys(var.notebook)
name = values(var.notebook)
}
# terraform 0.11
module "instance" {
instance_ip = ["1.1.1.${keys(var.notebook)[0]}", "1.1.1.${keys(var.notebook)[1]}", "1.1.1.${keys(var.notebook)[2]}"]
dns = ["${keys(var.notebook)}"]
name = ["${values(var.notebook)}"]
}
我正在尝试从 terraform 地图变量中提取左值和右值,但无法提取左值。下面是我的代码:-
variables.tf
variable "notebook" {
type = "map"
default = {
"01" = "a@a.com"
"02" = "b@a.com"
"03" = "c@a.com"
"04" = "d@a.com"
......
}
}
下面是我在 main.tf
中的模块 module "instance" {
instance_ip = ["1.1.1.x", "1.1.2.y", "1.1.1.z","1.1.2.p"]
dns = ["x", "y", "z","p"]
name = ["a", "b", "c", "d"]
}
输出应如下所示:-
module "instance" {
instance_ip = ["1.1.1.01", "1.1.2.02", "1.1.1.03","1.1.2.04" and so on]
dns = ["01", "02", "03","04" and so on]
name = ["a@a.com", "b@a.com", "c@a.com", "d@a.com and so on]
}
任何建议。我尝试查找变量但只得到 a@a.com 而不是 Key's.
您可以为此使用 keys
和 values
函数:
# terraform 0.12
module "instance" {
instance_ip = ["1.1.1.${keys(var.notebook)[0]}", "1.1.1.${keys(var.notebook)[1]}", "1.1.1.${keys(var.notebook)[2]}"]
dns = keys(var.notebook)
name = values(var.notebook)
}
# terraform 0.11
module "instance" {
instance_ip = ["1.1.1.${keys(var.notebook)[0]}", "1.1.1.${keys(var.notebook)[1]}", "1.1.1.${keys(var.notebook)[2]}"]
dns = ["${keys(var.notebook)}"]
name = ["${values(var.notebook)}"]
}