Могу ли я включить или исключить модули на основе переменных? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть следующий вариант использования:

  • Приложение развернуто в различных версиях.
  • В этих версиях некоторые ресурсы остаются прежними, некоторые изменяются
  • Мне нужно иметь возможность разбирать отдельные версии

Давайте рассмотрим пример конфигурации:

variable "majorVersion" {
  type        = "string"
}

module "media-assets" {
  majorVersion   = "${var.majorVersion}"
  input_bucket   = "uploads-${var.majorVersion}"
  source         = "./modules/media-assets"
}

Теперь предположим, что я хочу развернуть другую версию, которая добавляет к его конфигурации еще один модуль:

module "sns" {
  url    = "https://my-api-${var.majorVersion}.xyz.com/sns"
  source = "./modules/sns"
}

Поскольку v1 не требует этого ресурса, его создание для v1 нежелательно. Могу ли я по-прежнему запускать этот сценарий для majorVersion = v1 после добавления последней части без терраформного создания ресурсов sns? Есть ли способ, которым я могу управлять на основе переменной, какие модули включены, а какие нет?

1 Ответ

0 голосов
/ 04 июля 2019

Я не знаю, является ли версия 12 чем-то лучше, но вы все еще можете использовать старый способ создания ресурса в зависимости от переменной, подобной этой:

module "sns" {
  count  = ${var.create}
  url    = "https://my-api-${var.majorVersion}.xyz.com/sns"
  source = "./modules/sns"
}

Если create равен 0, ресурс не будет создан.

...