Как реализовать динамическое сопоставление в Terraform? - PullRequest
0 голосов
/ 15 января 2019

Как написать оператор if в terraform для запуска следующего блока с различными значениями в соответствии с окружением, которое будет указано в переменной.

root_block_device {
    volume_type = "gp2"
    volume_size = "30"
  }

  ebs_block_device = {
    device_name = "dfgh"
    volume_type = "gp2"
    volume_size = "5"
    encrypted = true
  }

Например, если я хочу, чтобы аргумент volume_size равнялся 30 для тестовой среды и 50 для рабочей среды?

1 Ответ

0 голосов
/ 15 января 2019

Вы не можете использовать оператор if в Terraform, поскольку это декларативный язык.

Однако есть обходной путь для достижения того, что вы ищете.

...

  root_block_device {
    volume_type = "gp2"
    volume_size = "${lookup(var.volume_sizes, var.env)}"
  }

...

variable "env" {
  default = "test"
}

variable "volume_sizes" {
  default = {
    "test" = "30"
    "production" = "50"
  }
}

Затем можно изменить значение размера тома, изменив переменную env с test на production.

...