Terraform赢得';不接受变量默认插值或处理分层插值

Terraform赢得';不接受变量默认插值或处理分层插值,terraform,Terraform,我有一个模块,可以创建多个输出。每个输出的值都是一个帐号 我想使用资源上的count参数来使用上面提到的模块中的值进行迭代。但是,我了解到,不能对变量默认值或分层插值进行插值 在地形中处理这个问题的正确方法是什么 variable "service_node_accounts" { description = "List of Account IDs" type = "list" default = ["${module.accounts.qa}", "${mo

我有一个模块,可以创建多个输出。每个输出的值都是一个帐号

我想使用资源上的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]}"
}
考虑在允许插值的地方使用

locals {
  # Untested but should work in theory
  service_node_accounts = ["${module.accounts.qa}", "${module.accounts.staging}", "${module.accounts.prod}"]
}

应该,但我认为在这种情况下,将模块输出插入到一个列表中会导致它无法工作,这是一个公开的错误。
locals {
  # Untested but should work in theory
  service_node_accounts = ["${module.accounts.qa}", "${module.accounts.staging}", "${module.accounts.prod}"]
}