Я начинаю с terraform и создаю небольшой проект, всего несколько экземпляров aws, к которым подключен том ebs.
Полагаю, я начну больше работать с terraform, поэтому я хочу выполнить эту работу, определив модули, которые затем можно будет использовать в других проектах.
Для этого я создал 3 модуля (один для экземпляров, другой для создания томов ebs и последний для подключения томов).
В другом месте у меня есть "main.tf", в котором я называю эти модули. У меня проблема в том, что для создания и присоединения томов мне нужны некоторые данные, такие как instanceID.
Чтобы получить InstanceID, я определил выходную переменную в модуле «instance» (который должен быть списком, если число экземпляров больше одного):
output "instance_id" {
value = ["${aws_instance.instance.*.id}"]
}
Затем в моем файле main.tf я вызываю переменную в модуле:
module "aws-instance" {
source = "../../Terraform/aws-instance"
instance_type = "t2.micro"
instance_count = "2"
}
(some other code...)
module "aws-volume-attachment" {
source = "../../Terraform/aws-volume-attachment"
device_name = "/dev/sdf"
instance_id = "${element("${module.aws-instance.instance_id}", count.index)}"
volume_id = "${element("${module.aws-ebs-volume.volume_id}", count.index)}"
}
Но я получаю ошибку:
Error: module "aws-volume-attachment": count variables are only valid within resources
У меня вопрос, как я могу зациклить переменную, чтобы я мог присоединить каждый том к одному экземпляру?