Я пытаюсь создать AWS vp c среду с publi c и частным su bnet, которую я создаю с "template_file", однако у меня возникают проблемы с определением publi c и частные подсети внутри модуля VP C.
Я сгенерировал свои подсети с помощью:
data "template_file" "cidrsubnets" {
count = var.subnet_count[terraform.workspace]
template = "$${cidrsubnet(vpc_cidr,8,current_count)}"
vars = {
vpc_cidr = var.network_address_space[terraform.workspace]
current_count = count.index
}
}
Внутри модуля VP C приведенный выше код добавляет все мои подсети в publi c подсети (работает):
module "vpc" {
source = "terraform-aws-modules/vpc/aws"
name = "${local.prefix}-vpc"
cidr = var.network_address_space[terraform.workspace]
azs = slice(data.aws_availability_zones.available.names, 0, var.subnet_count[terraform.workspace])
public_subnets = data.template_file.cidrsubnets[*].rendered
private_subnets = []
create_database_subnet_group = false
enable_dns_hostnames = true
enable_nat_gateway = true
enable_s3_endpoint = true
enable_dynamodb_endpoint = true
tags = local.common_tags
}
Однако я хочу добавить четные подсети в списке в подсети publi c и нечетные подсети в списке в частные подсети. Я до сих пор не разбил подсети на частные и публичные c автоматически (это то, что мне нужно), но попытался добавить определенные c элементы в списки и получил ошибку выше:
Можете ли вы помочь с этим? Спасибо за ответ.