Как определить переменную Terraform, в которой есть строка и карта тегов key: value для размещения в облачных ресурсах? - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь определить повторно используемый шаблон для использования с AWS ресурсами, и одна из вещей, которые мне нужно сделать, это объявить переменные для ресурсов, которые включают значения, а также карту ключ: значение для использования с тегами. Например, vp c имеет строку CIDR_BLOCK и переменную TAGS. Теги могут быть пустыми или иметь столько ключей: значений, сколько позволит AWS. Однако я не могу понять, почему это не работает.

variable vpc {
  type = list(object({
    cidr_block = string,
    tags = map (list(string))
  }))
  default = [
    "10.30.0.0/16",
    { aTag = "aValue" }
  ]
}

1 Ответ

1 голос
/ 27 февраля 2020

Вы очень близки, если я правильно понимаю вопрос, вы хотите, чтобы блоки CIDR имели связанные теги, это правильно? Если это так, в вашем примере отсутствуют только фигурные скобки, ключи объекта и ваша карта, вероятно, должны иметь значения string, поэтому

variable vpc {
  type = list(object({
    cidr_block = string,
    tags = map(string)
  }))

  default = [
   {
      cidr_block = "10.30.0.0/16",
      tags = { aTag = "aValue" }
   }
  ]
}

Итак, чтобы перечислить изменения

  • Добавить фигурные скобки к объекту по умолчанию

  • Добавление ключей объекта к объекту по умолчанию

Если вы намеревались предоставить cidr_blocks и tags отдельно, вам потребуется определить несколько переменных.

...