有没有办法在地形中连接元组?
is there a way to concat tuple in terraform?
variable "query_param" {
type = list(string)
default = [
"hello",
"one",
"two"
]
}
locals {
common_tags = flatten([
for i in var.query_param: {
"method.request.querystring.${i}" = false
}
])
}
output name {
value = local.common_tags
description = "description"
}
我有这段代码可以将变量(列表)迭代到局部变量(映射)。我得到了以下不想要的输出。
name = [
{
"method.request.querystring.hello" = false
},
{
"method.request.querystring.one" = false
},
{
"method.request.querystring.two" = false
},
]
所需的输出是获取单个数组中的所有值。如下图
name = [
{
"method.request.querystring.hello" = false,
"method.request.querystring.one" = false,
"method.request.querystring.two" = false
}
]
有什么办法可以实现吗?
我想你会想要这样的东西:
locals {
common_tags = {
for i in var.query_param :
"method.request.querystring.${i}" => false
}
}
以上代码的输出结果如下:
name = {
"method.request.querystring.hello" = false
"method.request.querystring.one" = false
"method.request.querystring.two" = false
}
请注意,在这种情况下 name
本身不是数组。如果您愿意,可以执行以下操作:
locals {
common_tags = [{
for i in var.query_param :
"method.request.querystring.${i}" => false
}]
}
输出将是:
name = [
{
"method.request.querystring.hello" = false
"method.request.querystring.one" = false
"method.request.querystring.two" = false
}
]
variable "query_param" {
type = list(string)
default = [
"hello",
"one",
"two"
]
}
locals {
common_tags = flatten([
for i in var.query_param: {
"method.request.querystring.${i}" = false
}
])
}
output name {
value = local.common_tags
description = "description"
}
我有这段代码可以将变量(列表)迭代到局部变量(映射)。我得到了以下不想要的输出。
name = [
{
"method.request.querystring.hello" = false
},
{
"method.request.querystring.one" = false
},
{
"method.request.querystring.two" = false
},
]
所需的输出是获取单个数组中的所有值。如下图
name = [
{
"method.request.querystring.hello" = false,
"method.request.querystring.one" = false,
"method.request.querystring.two" = false
}
]
有什么办法可以实现吗?
我想你会想要这样的东西:
locals {
common_tags = {
for i in var.query_param :
"method.request.querystring.${i}" => false
}
}
以上代码的输出结果如下:
name = {
"method.request.querystring.hello" = false
"method.request.querystring.one" = false
"method.request.querystring.two" = false
}
请注意,在这种情况下 name
本身不是数组。如果您愿意,可以执行以下操作:
locals {
common_tags = [{
for i in var.query_param :
"method.request.querystring.${i}" => false
}]
}
输出将是:
name = [
{
"method.request.querystring.hello" = false
"method.request.querystring.one" = false
"method.request.querystring.two" = false
}
]