Назад | Перейти на главную страницу

AWS witn Terraform - фильтрация общедоступных / частных подсетей (без использования тегов)

Запрос:

Я хотел бы создать AWS ALB - для этого мне нужны как минимум две подсети в двух разных зонах доступности.

(Terraform показывает очень явную ошибку, если мы забыли - см. Ошибка №1 ниже).

Я хотел бы проверить текущее количество общедоступных подсетей, которые у меня есть в соответствующем VPC, и убедиться, что его не менее 2.

Моя попытка:

Для этого рассчитаю:

number_of_public_subnets_to_create  = "${2 - length(data.aws_subnet_ids.customer_a_public_subnets.ids)}"

Для расчета выше - Terraform имеет 2 типа источников данных: aws_subnet и aws_subnet_ids.

Если подсети помечены тегами - мы можем использовать aws_subnet_ids источник данных и добавьте такой простой фильтр:

data "aws_subnet_ids" "customer_a_public_subnets" {
  vpc_id = "${data.aws_vpc.my-customer_a-vpc.id}"
  tags {
      Tier = "Public"
  }
}

Мой вопрос:

Но что, если подсети не содержат тегов «Public / Private»?

Есть ли для этого простое решение (может быть, обычный фильтр на aws_subnet источник данных)?


Ошибка №1:

Ошибка при создании приложения Load Balancer: ValidationError: необходимо указать как минимум две подсети в двух разных зонах доступности.