Terraform 中的动态地图创建
Dynamic map creation in terraform
我有一张地图作为变量传递
dummy = {
1 = {
instances = {
"ip1" = {
a = "earth"
b = "hi"
c = 1
}
"ip2" = {
a = "world"
b = "hello"
c = 2
}
"ip3" = {
a = "planet"
b = "hey"
c = 3
}
}
}
}
现在我要构建一个地图如下
value = {
"ip1" = {
b = "hi"
c = 1
}
"ip2" = {
b = "hello"
c = 2
}
"ip3" = {
b = "hey"
c = 3
}
}
我尝试使用 for 循环,但似乎没有任何效果
以下是我自
以来的尝试
_meta = {
for instance in var.dummy.1.instances:
(instance.key) = {
b = instance.value.b
c = instance.value.c
}
}
但它说我无法使用迭代变量访问密钥
_meta = {
for key, instance in var.dummy.1.instances:
key => {
b = instance.b
c = instance.c
}
}
for 表达式与 for_each 有点不同。您不会在 for 表达式中获得 key 或 value 变量,您可以明确地从地图中提取整个条目,如我在上面所示使用key,value in map为表达式形式
您还需要在生成的映射条目的键和值之间使用粗箭头 =>
运算符。
我有一张地图作为变量传递
dummy = {
1 = {
instances = {
"ip1" = {
a = "earth"
b = "hi"
c = 1
}
"ip2" = {
a = "world"
b = "hello"
c = 2
}
"ip3" = {
a = "planet"
b = "hey"
c = 3
}
}
}
}
现在我要构建一个地图如下
value = {
"ip1" = {
b = "hi"
c = 1
}
"ip2" = {
b = "hello"
c = 2
}
"ip3" = {
b = "hey"
c = 3
}
}
我尝试使用 for 循环,但似乎没有任何效果 以下是我自
以来的尝试_meta = {
for instance in var.dummy.1.instances:
(instance.key) = {
b = instance.value.b
c = instance.value.c
}
}
但它说我无法使用迭代变量访问密钥
_meta = {
for key, instance in var.dummy.1.instances:
key => {
b = instance.b
c = instance.c
}
}
for 表达式与 for_each 有点不同。您不会在 for 表达式中获得 key 或 value 变量,您可以明确地从地图中提取整个条目,如我在上面所示使用key,value in map为表达式形式
您还需要在生成的映射条目的键和值之间使用粗箭头 =>
运算符。