【问题标题】:Reduce map to string in terraform在terraform中将地图减少为字符串
【发布时间】:2020-02-19 21:11:37
【问题描述】:

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

我的变量看起来像:

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

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

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

任何帮助将不胜感激。

【问题讨论】:

    标签: terraform


    【解决方案1】:

    您可以分别使用keysvalues 从映射中获取键列表和值列表。

    然后,您可以使用 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)
    }
    

    【讨论】:

    • 这正是我想要的,谢谢分享。一行中的相同方法:join(",", formatlist("%s:%s", keys(var.my_map), values(var.my_map)))
    • 是的,我只是想显示中间结果,以便您从地图到列表再到字符串。
    猜你喜欢
    • 2021-06-19
    • 2021-12-09
    • 2017-02-14
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2023-01-19
    • 2015-02-10
    • 2014-11-15
    相关资源
    最近更新 更多