Применить одну terraform aws_autoscaling_schedule к нескольким модулям ASG - PullRequest
0 голосов
/ 27 июня 2019

Я использую terraform 0.11 и провайдера aws.Я использую предоставленный hashicorp модуль terraform-aws-modules / autoscaling , чтобы создать около 20 ASG

Пример ASG:

module "role_a" {
  source  = "terraform-aws-modules/autoscaling/aws"
  version = "2.8.0"

  name                      = "Role-A-ASG"
  image_id                  = "ami-123456"
  ...
  min_size                  = "1"
  desired_capacity          = "2"
  max_size                  = "3"
}

Я знаю, что могу определить 20 aws_autoscaling_schedule ресурсы по одному на каждую из моих 20 АСГ.Однако мне было интересно, есть ли более простой способ сделать это с помощью count трюков.

Я определяю переменную, которая содержит список ASG, к которым я хочу применить aws_autoscaling_schedule.

asg_turn_off_morning = [ "asg_role_a" ]

Но я не могу найти способ ссылаться на имя ASGв autoscaling_group_name

resource "aws_autoscaling_schedule" "turn_off_morning" {
  count                  = "${length(var.asg_turn_off_morning)}"
  recurrence             = "0 7 * * *"
  scheduled_action_name  = "Turn off in the morning"
...

# interpolating the resource reference works ok, but
  autoscaling_group_name = "${module.role_a.this_autoscaling_group_name}"                            

# interpolating a string with the resource's name does not work
  autoscaling_group_name = "${join(".", list("module", "role_a", "this_autoscaling_group_name"))}"

# If it did I could eventually do something like:
# I know this is not valid HCL, I just want to show what I want to do
  autoscaling_group_name = "${join(".", list("module", ${element(var.asg_turn_off_morning, count.index)} , "this_autoscaling_group_name"))}"
}

Есть ли способ иметь таблицу обратного просмотра, которая сопоставляет ресурс asg_role_a с одним из его атрибутов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...