Корреляция Terraform с ресурсом с for_each - PullRequest
0 голосов
/ 12 июля 2020

Я использую приведенный ниже код для назначения подсетей по умолчанию для ASG

resource "aws_autoscaling_group" "ecs_spot_asg" {
  for_each = data.aws_subnet_ids.all_subnets.ids
.... etc...

Подсети, выполняемые через

data "aws_subnet_ids" "all_subnets" {
  vpc_id = data.aws_vpc.default.id
}

Ниже у меня aws_autoscaling_policy, и я застрял в том, как связать один к другому

resource "aws_autoscaling_policy" "ecs_cluster_scale_policy" {
  autoscaling_group_name = aws_autoscaling_group.ecs_spot_asg.name

Получение ошибки:

Поскольку aws_autoscaling_group.ecs_spot_asg имеет значение «for_each», его атрибуты должны быть доступны в определенных c экземплярах.

Например, чтобы коррелировать с индексами ссылающегося ресурса, используйте: aws_autoscaling_group.ecs_spot_asg [each.key]

Как это следует изменить?

1 Ответ

0 голосов
/ 12 июля 2020

Моя ошибка заключалась в добавлении [] в vpc_zone_identifier = data.aws_subnet_ids.all_subnets.ids

Таким образом, вместо vpc_zone_identifier = [data.aws_subnet_ids.all_subnets.ids] он должен быть vpc_zone_identifier = data_id идентификаторы

...