ссылка на запуск конфигурации по count.index в группе автомасштабирования - PullRequest
0 голосов
/ 24 сентября 2018

Я создаю кластер хостов с помощью terraform в aws и пытаюсь использовать счетчик, чтобы избежать создания 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 Ответ

0 голосов
/ 24 сентября 2018

Я понял это, прочитав некоторый связанный материал (https://www.terraform.io/docs/configuration/interpolation.html#using-templates-with-count) на сайте 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]}"]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...