Я использую 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
с одним из его атрибутов?