【发布时间】:2020-09-08 05:14:38
【问题描述】:
我有一个作为变量传递的地图
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
}
}
但它说我无法使用迭代变量访问密钥
【问题讨论】:
-
(instance.key)应该是instance.key。修复后会出现什么错误? -
@MattSchuchard 错误:test.tf 第 12 行的“for”表达式无效,在资源“consul_keys”“app”中:10:11:12:instance.key = { 13:14:15: 16:构建对象时需要key表达式。错误:test.tf 第 12 行的“for”表达式无效,在资源“consul_keys”“app”中:10: 11: 12: instance.key = {“for”表达式结束后的额外字符。
-
由于这是一个嵌套的map,所以还需要将外部表达式也包含在
{}中,所以{ instance.key = ... }}