Arrays 地形:将地图列表转换为修订后的地图列表
我的意见是:Arrays 地形:将地图列表转换为修订后的地图列表,arrays,list,dictionary,object,terraform,Arrays,List,Dictionary,Object,Terraform,我的意见是: input = [ { x = "X1" y = "Y1" }, { x = "X2" y = "Y2" }, { x = "X3" y = "Y3" }, ] 我期望的输出是: output = [ { val = "X1", des
input = [
{
x = "X1"
y = "Y1"
},
{
x = "X2"
y = "Y2"
},
{
x = "X3"
y = "Y3"
},
]
我期望的输出是:
output = [
{
val = "X1",
description = "This is a value of X"
},
{
val = "Y1",
description = "This is a value of Y"
},
{
val = "X2",
description = "This is a value of X"
},
{
val = "Y2",
description = "This is a value of Y"
},
{
val = "X3",
description = "This is a value of X"
},
{
val = "Y3",
description = "This is a value of Y"
},
]
如何在地形中实现这一点?以下内容产生了这样的输出:
variable "input" {
default = [
{
x = "X1"
y = "Y1"
},
{
x = "X2"
y = "Y2"
},
{
x = "X3"
y = "Y3"
},
]
}
locals {
part1 = [for v in var.input:
{
"val" = v.x,
"description" = "This is a value of X"
}]
part2 = [for v in var.input:
{
"val" = v.y,
"description" = "This is a value of Y"
}]
}
output "output" {
value = concat(local.part1, local.part2)
}
我的测试的输出:
utput = [
{
"description" = "This is a value of X"
"val" = "X1"
},
{
"description" = "This is a value of X"
"val" = "X2"
},
{
"description" = "This is a value of X"
"val" = "X3"
},
{
"description" = "This is a value of Y"
"val" = "Y1"
},
{
"description" = "This is a value of Y"
"val" = "Y2"
},
{
"description" = "This is a value of Y"
"val" = "Y3"
},
]
我能够在terraform中使用
flant()
函数来实现以下功能:
flatten([
for a_map in var.input : [
{ val = a_map.x, description = "This is a value of X" },
{ val = a_map.y, description = "This is a value of Y" },
]
])
这种方法的一个优点是它将保持价值的顺序
因此,输出将是:
[
{
"description" = "This is a value of X"
"val" = "X1"
},
{
"description" = "This is a value of Y"
"val" = "Y1"
},
{
"description" = "This is a value of X"
"val" = "X2"
},
{
"description" = "This is a value of Y"
"val" = "Y2"
},
{
"description" = "This is a value of X"
"val" = "X3"
},
{
"description" = "This is a value of Y"
"val" = "Y3"
},
]
这将正确生成映射项。但是它不能保持数组项的相同顺序。@没问题。问题并没有说订购有任何问题。但无论如何,谢谢你让我知道。我看到您找到了一个答案:-)问题提到数组是所需的输出。在数组中,索引是它的一部分:)@Rakib足够公平。这是一种很好的方法。