Уменьшить карту до строки в terraform - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть переменная карты, которую я хотел бы уменьшить до одной строки.

Моя переменная выглядит так:

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

И я надеюсь уменьшить ее до key1:value1,key2:value2,key3:value3 .

Проверка документации terraform Я не смог найти ни одной функции для уменьшения карты, но, возможно, я что-то упустил.

Любая помощь будет признательна.

1 Ответ

2 голосов
/ 19 февраля 2020

Вы можете получить список ключей и другой список значений с карты, используя 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)
}
...