Получить общедоступный DNS для экземпляров aws_autoscaling_group
Я хочу вывести общедоступный DNS для EC2, которые составляют мою группу автоматического масштабирования:
resource "aws_launch_configuration" "instances" {
image_id = "ami-0fad7824ed21125b1"
instance_type = "${var.instance_type}"
security_groups = ["${aws_security_group.security_group_ec2.id}"]
key_name = "${var.key_pair_name}"
user_data = "${data.template_file.user_data.rendered}"
lifecycle {
create_before_destroy = true
}
}
resource "aws_autoscaling_group" "scaling_group" {
launch_configuration = "${aws_launch_configuration.instances.id}"
availability_zones = ["${var.availability_zones_names}"]
load_balancers = ["${var.elb_id}"]
health_check_type = "ELB"
min_size = "${var.min_size}"
max_size = "${var.max_size}"
tags = {
key = "Name"
value = "terraformUpAndRunning-${var.cluster_name}"
propagate_at_launch = true
}
wait_for_capacity_timeout = "5m"
}
Я проверил атрибуты группы автоматического масштабирования в официальной документации Terraform, но не могу придумать ни одного из них, чтобы достичь своей цели... Есть ли способ?
1 ответ
Экземпляры, которые управляются группой автоматического масштабирования, не управляются Terraform. Поэтому для Terraform неразумно отслеживать эти эфемерные экземпляры в файлах состояний. Эфемерные примеры будут приходить и уходить по своей природе.
Однако, если вы действительно хотите использовать Terraform для этой цели, существует источник данных с именем aws_instances. Это дает вам возможность запрашивать и перечислять несколько экземпляров.
Вы также можете использовать awscli для распечатки деталей экземпляра. Вот пример этого: Получение списка экземпляров в группе автоматического масштабирования EC2?,