【发布时间】:2016-12-01 20:40:32
【问题描述】:
我正在尝试在 Terraform 中创建一个可以使用不同的变量输入多次实例化的模块。在模块中,当资源名称依赖于输入变量时,如何引用资源?我正在尝试通过括号语法 ("${aws_ecs_task_definition[var.name].arn}") 来实现,但我只是猜到了。
(警告:我可能会以完全错误的方式处理这个问题)
这是我的模块(简化)main.tf 文件:
variable "name" {}
resource "aws_ecs_service" "${var.name}" {
name = "${var.name}_service"
cluster = ""
task_definition = "${aws_ecs_task_definition[var.name].arn}"
desired_count = 1
}
resource "aws_ecs_task_definition" "${var.name}" {
family = "ecs-family-${var.name}"
container_definitions = "${template_file[var.name].rendered}"
}
resource "template_file" "${var.name}_task" {
template = "${file("task-definition.json")}"
vars {
name = "${var.name}"
}
}
我收到以下错误:
Error loading Terraform: Error downloading modules: module foo: Error loading .terraform/modules/af13a92c4edda294822b341862422ba5/main.tf: Error reading config for aws_ecs_service[${var.name}]: parse error: syntax error
【问题讨论】:
标签: terraform