我正在尝试在Terraform中创建一个可以使用不同的变量输入多次实例化的模块。在模块中,当名称依赖于输入变量时,如何引用资源?我试图通过括号语法(function padIt(str,n){
//coding here
var newStr = "";
var padding = "*";
var i = 0;
while(i<=n){
if (i%2===0){
newStr = newStr+padding;
} else{
newStr = padding+str;
}
i++;
}
return newStr;
}
)来做,但我猜对了。
(警告:我可能会以完全错误的方式解决这个问题)
这是我的模块(简化)"${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}"
}
}