Получить общедоступный 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?,

Другие вопросы по тегам