Terraform назначает громкость списку экземпляров AWS
Я создал список экземпляров AWS, используя Terraform:
resource "aws_instance" "masters" {
count = 2
ami = "${var.aws_centos_ami}"
instance_type = "t2.micro"
availability_zone = "eu-west-1b"
tags {
Name = "master-${count.index}"
}
}
Как я могу назначить тома этим экземплярам как в цикле? Я просто пытаюсь использовать следующее:
data "aws_ebs_volume" "masters_ebs_volume" {
most_recent = true
filter {
name = "attachment.instance-id"
values = ["${aws_instance.masters.*.id}"]
}
}
Но я не думаю, что он работает нормально, потому что, когда я пытаюсь записать тома AWS в файл, он записывает только одно имя тома.
provisioner "local-exec" {
command = "echo \"${join("\n", data.aws_ebs_volume.masters_ebs_volume.*.id)}\" >> volumes"
}
Я попытался определить объем следующим образом:
data "aws_ebs_volume" "masters_ebs_volume" {
count = 2
# most_recent = true
filter {
name = "attachment.instance-id"
values = ["${aws_instance.masters.*.id}"]
}
}
Но это выдает следующую ошибку:
data.aws_ebs_volume.masters_ebs_volume.0: Your query returned more than one result. Please try a more specific search criteria, or set `most_recent` attribute to true.
1 ответ
Решение
Вам нужно будет указать, какой именно экземпляр соответствует тому или иному объему. Вы можете сделать это с помощью element ():
data "aws_ebs_volume" "masters_ebs_volume" {
count = 2
filter {
name = "attachment.instance-id"
values = ["${element(aws_instance.masters.*.id, count.index)}"]
}
}