我只是好奇我是否以最好的方式这样做,或者我错过了什么?
我有一个像这样定义的变量:
variable "acme_cert_requests" {
type = list(object({
key_name = string
certs = list(object({
hostname = string
zone_name = string
}))
owner = string
}))
description = "List of keys needed for certificate automation."
nullable = false
}
我路过:
acme_cert_requests = [
{
key_name = "test"
certs = [
{
hostname = "test1.domainB.com"
zone_name = "domainB.com"
},
{
hostname = "test2.domainA.com"
zone_name = "domainA.com"
},
{
hostname = "test3.domainA.com"
zone_name = "domainA.com"
}
]
owner = "[email protected]"
}
]
我想要一份独特的
zone_name
列表。
我正在用这个:
distinct(flatten([for request in var.acme_cert_requests : [
for zone in request.certs: zone.zone_name]
]))
输出:
[
+ "domainB.com",
+ "domainA.com",
]
如果没有展平,我最终会得到一个列表中的列表。有没有更直接的途径来实现这一点?
您想要的结果会丢弃描述各个证书请求的第一级嵌套,因此这似乎是一个使用
flatten
解决的好问题。
您共享的示例与 for_each
flatten
函数的目标。