목록을 매핑 및 병합 값으로 변환 Terraform
Sep 16 2020
항목 목록을지도로 변환하려고합니다. 키는 항목의 키와 일치하며 키가 이미있는 경우 값은 목록에 추가 목록을 만들어야합니다.
아마도 예가 더 불안정 할 것입니다.
variable "list" {
type = list(map(string))
default = [
{ a : "a", k : "k1" },
{ a : "b", k : "k1" },
{ a : "c", k : "k1" },
{ a : "d", k : "k2" },
{ a : "e", k : "k2" }
]
}
// Output wanted
// {
// "k1" : [{a: "a"}, {a: "b"}, {a: "c"}],
// "k2" : [{a: "d"}, {a: "e"}]
// }
감사합니다
답변
1 Marcin Sep 16 2020 at 06:08
다음을 볼 수 있습니다.
variable "list" {
type = list(map(string))
default = [
{ a : "a", k : "k1" },
{ a : "b", k : "k1" },
{ a : "c", k : "k1" },
{ a : "d", k : "k2" },
{ a : "e", k : "k2" }
]
}
output "test" {
value = {for item in var.list:
item["k"] => {a = item["a"]}...
}
}
위의 코드는 세 개의 점 연산자를 사용하며 다음을 생성합니다.
test = {
"k1" = [
{
"a" = "a"
},
{
"a" = "b"
},
{
"a" = "c"
},
]
"k2" = [
{
"a" = "d"
},
{
"a" = "e"
},
]
}