Ссылка на запуск конфигурации по count.index в группе автомасштабирования
Я создаю кластер хостов с помощью terraform в aws и пытаюсь использовать count, чтобы избежать создания 3 отдельных конфигураций luanch и групп автоматического масштабирования. У меня не получается с секцией группы автоматического масштабирования, ссылающейся на отдельные конфигурации запуска, используя count.index.
Вот как я думал, что это будет работать
resource "aws_launch_configuration" "cluster-lc" {
count = 3
associate_public_ip_address = true
image_id = "${data.aws_ami.ami.id}"
instance_type = "${var.instance-type}"
security_groups = ["${aws_security_group.sg.id}"]
key_name = "kp"
user_data = "${data.template_file.user_data.rendered}"
lifecycle {
create_before_destroy = true
}
}
resource "aws_autoscaling_group" "asg" {
count = 3
desired_capacity = 1
launch_configuration = "${aws_launch_configuration.cluster-lc[count.index].name}"
max_size = 1
min_size = 1
name = "asg-${count.index}"
vpc_zone_identifier = ["${var.subnets.[count.index]}"]
}
я получаю следующую ошибку при попытке аналогичных вариантов выше.
Error: Error loading /test.tf: Error reading config for aws_autoscaling_group[asg]: parse error at 1:47: expected "}" but found "."
"$ {aws_launch_configuration.cluster-lc. [count.index].name}" "$ {aws_launch_configuration.cluster-lc. [count.index] name}"
Если я пытаюсь "${aws_launch_configuration.cluster-lc.name.[Count.index]}", я получаю следующую ошибку.
Error: Error running plan: 1 error(s) occurred:
* aws_autoscaling_group.zoo-asg: 3 error(s) occurred:
* aws_autoscaling_group.asg[2]: Resource 'aws_launch_configuration.cluster-lc' not found for variable 'aws_launch_configuration.cluster-lc.name.'
* aws_autoscaling_group.asg[1]: Resource 'aws_launch_configuration.cluster-lc' not found for variable 'aws_launch_configuration.cluster-lc.name.'
* aws_autoscaling_group.asg[0]: Resource 'aws_launch_configuration.cluster-lc' not found for variable 'aws_launch_configuration.cluster-lc.name.'
1 ответ
Я понял это, прочитав некоторые связанные материалы ( https://www.terraform.io/docs/configuration/interpolation.html) на сайте hashicorp.
Следующее сработало для меня.
resource "aws_autoscaling_group" "asg" {
count = 3
desired_capacity = 1
launch_configuration = "${aws_launch_configuration.cluster-lc.*.name[count.index]}"
max_size = 1
min_size = 1
name = "asg-${count.index}"
vpc_zone_identifier = ["${var.subnets.[count.index]}"]
}