Terraform не будет принимать переменную интерполяцию по умолчанию или обрабатывать слоистые интерполяции - PullRequest
1 голос
/ 18 апреля 2019

У меня есть модуль, который создает несколько выходов.Значением каждого выхода является номер счета.

Я бы хотел использовать параметр count для ресурса, чтобы выполнить итерацию, используя значения из модуля, упомянутого выше.Тем не менее, я узнаю, что вы не можете выполнять интерполяцию с переменной или многослойной интерполяцией.

Как правильно обрабатывать это в терраформе?

variable "service_node_accounts" {
  description = "List of Account IDs"
  type        = "list"
  default     = ["${module.accounts.qa}", "${module.accounts.staging}", "${module.accounts.prod}"]
}

data "aws_ami" "service_node_1_0" {
    filter {
        name   = "name"
        values = ["service-node-1.0"]
    }
    owners = ["self"] # Canonical
}

resource "aws_ami_launch_permission" "service_node_1_0" {
  count      = "${length(var.service_node_accounts)}"
  image_id   = "${aws_ami.service_node_1_0.id}"
  account_id = "${var.service_node_accounts[count.index]}"
}
terraform plan...
default may not contain interpolations

1 Ответ

0 голосов
/ 18 апреля 2019

Рассмотрите возможность использования locals , где допускается интерполяция.

locals {
  # Untested but should work in theory
  service_node_accounts = ["${module.accounts.qa}", "${module.accounts.staging}", "${module.accounts.prod}"]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...