将地形中的地图减少为字符串

ped*_*eis 1 terraform

我有一个地图变量,我想将其简化为单个字符串。

我的变量看起来像:

my_map = {
  key1 = "value1"
  key2 = "value2"
  key3 = "value3"
}
Run Code Online (Sandbox Code Playgroud)

我希望将其减少到key1:value1,key2:value2,key3:value3

检查 terraform 文档,我找不到任何缩小地图的功能,但可能我遗漏了一些东西。

任何帮助,将不胜感激。

yda*_*coR 5

keys您可以分别使用和来从映射中获取键列表和值列表values

然后,您可以使用该函数将这些列表格式化为由冒号连接在一起的列表的字符串列表formatlist

最后,您可以使用该join函数获得该列表中这些元素通过逗号连接在一起的单个字符串。

variable "my_map" {
  default = {
    key1 = "value1"
    key2 = "value2"
    key3 = "value3"
  }
}

locals {
  my_list = formatlist("%s:%s", keys(var.my_map), values(var.my_map))
}

output "my_string" {
  value = join(",", local.my_list)
}
Run Code Online (Sandbox Code Playgroud)

  • 这正是我一直在寻找的,谢谢分享。一行中的相同方法:`join(",", formatlist("%s:%s",keys(var.my_map),values(var.my_map)))` (2认同)
  • 是的,我只是想显示中间结果,以便您从映射到列表再到字符串。 (2认同)