我正在尝试将地图变量传递到template_file中,并引发此错误:
vars(varsname):”预期类型为“字符串”,无法转换为类型“ map [string] interface {}”
data "template_file" "app" {
template = "${file("./app_template.tpl")}"
vars {
container = "${var.container-configuration}"
}
}
variables.tf
variable "container-configuration" {
description = "Configuration for container"
type = "map"
default = {
image = "blahblah.dkr.ecr.us-east-2.amazonaws.com/connect"
container-port = "3000"
host-port = "3000"
cpu = "1024"
memory = "2048"
log-group = "test"
log-region = "us-east-2a"
}
}
是否可以将地图传递到模板文件中进行插值?我在文档中没有发现任何明确的内容。
答案 0 :(得分:0)
答案 1 :(得分:0)
Terraform v0.12引入了templatefile
函数,该函数吸收了template_file
数据源的主要用例,并接受任何类型的值:
templatefile("${path.module}/app_template.tpl", {
container = var.container-configuration
})
Terraform v0.11和更早版本没有任何方法可以渲染具有非字符串值的模板。由于用于配置中表示映射值的协议的性质而存在限制:在Terraform v0.12中引入新协议之前,它只能表示字符串的映射。