【发布时间】:2019-11-16 07:28:11
【问题描述】:
我有一个用于列表的模板文件:
variable "users" {
type = "list"
default = [
"blackwidow",
"hulk",
"marvel",
]
}
// This will loop through the users list above and render out code for
// each item in the list.
data "template_file" "init" {
template = file("user_template.tpl")
count = length(var.users)
vars = {
username = var.users[count.index]
bucketid = aws_s3_bucket.myFTP_Bucket.id
}
}
模板文件具有多个 aws 资源,例如
- “aws_transfer_user”
- “aws_s3_bucket_object”
- “aws_transfer_ssh_key”
等等......事实上,它可以有更多的东西。它也有一些地形变量。
此数据模板非常适合渲染模板文件的内容,并替换为我的用户名。
但是这就是 terraform 所做的一切。
Terraform 不会实例化模板文件的渲染内容。它只是将其保存为字符串并将其保存在内存中。有点像 C 预处理器进行替换,但不“包含”文件。 有点令人沮丧。我希望 Terraform 实例化我渲染的模板文件的内容。我该怎么做?
【问题讨论】:
标签: amazon-web-services terraform terraform-provider-aws