【发布时间】:2020-07-06 23:22:40
【问题描述】:
有没有办法将许多 ENV 一起传递给 Terraform 中的模板文件,而无需像这样单独声明它们:
data "template_file" "test_template" {
template = file("templates/container.tpl")
vars = {
ENV1 = var.ENV1
ENV2 = var.ENV2
ENV3 = var.ENV3
ENV4 = var.ENV4
ENV5 = var.ENV5
}
}
在模板里面有这样的吗?:
[
{
"essential": true,
"memory": 300,
"name": "client",
"cpu": 300,
"image": "some_image",
"portMappings": [
{
"containerPort": 3000,
"hostPort": 0
}
],
"environment": [
{ "name": "ENV1", "value": "${ENV1}" },
{ "name": "ENV2", "value": "${ENV2}" },
{ "name": "ENV3", "value": "${ENV3}" },
{ "name": "ENV4", "value": "${ENV4}" },
{ "name": "ENV5", "value": "${ENV5}" },
]
}
]
【问题讨论】:
-
您使用的是什么版本的 Terraform?你能提供一个更有效的例子来说明这应该如何工作吗?应用程序是否期望在
ENV1和ENV2等处检索环境值?还是您想将键和值传递给 ECS 任务(例如FOO = "BAR=>{ "name": "FOO", "value": "BAR"}。 -
我的版本是0.12.26。应用程序是否期望在 ENV1 和 ENV2 等处检索环境值 - 是的。或者您是否想将密钥和值传递给 ECS 任务 - 是的。我想要的只是不要在 template_file 级别声明它们,而是使用一些扩展语法(?)。
标签: terraform terraform-provider-aws