如何将使用cidrsubnets的子网的CIDR范围传递到Terraform版本0.14中的VPC模块

如何将使用cidrsubnets的子网的CIDR范围传递到Terraform版本0.14中的VPC模块,terraform,vpc,terraform0.14.7,Terraform,Vpc,Terraform0.14.7,Terraform cidrsubnets为我提供了以下子网,这正是我想要的 我正在使用的地形版本:terraformv0.14.9 > cidrsubnets("172.16.0.0/18", 6, 6, 6, 6) tolist([ "172.16.0.0/24", "172.16.1.0/24", "172.16.2.0/24", "172.16.3.0/24", ])

Terraform cidrsubnets为我提供了以下子网,这正是我想要的

我正在使用的地形版本:terraformv0.14.9

> cidrsubnets("172.16.0.0/18", 6, 6, 6, 6)
tolist([
  "172.16.0.0/24",
  "172.16.1.0/24",
  "172.16.2.0/24",
  "172.16.3.0/24",
])
我如何通过公共和私有子网的上述CIDR范围 Terraformcidrsubnets用于以下VPC模块

variable "vpc_cidr" {
  default = "172.16.0.0/18"
}

data "aws_availability_zones" "azs" {
  state = "available"
}

module "vpc" {
  
  source  = "terraform-aws-modules/vpc/aws"
  version = "2.77.0"

  name                 = "my-vpc"
  cidr                 = var.vpc_cidr
  azs                  = data.aws_availability_zones.azs.names
  private_subnets      = ["172.16.1.0/24", "172.16.2.0/24"] <= I want to pass these subnets from cidrsubnets function
  public_subnets       = ["172.16.3.0/24", "172.16.4.0/24"] <= I want to pass these subnets from cidrsubnets function
  enable_nat_gateway   = true
  single_nat_gateway   = true
  enable_dns_hostnames = true

}


变量“vpc\u cidr”{
default=“172.16.0.0/18”
}
数据“aws可用性”区域“azs”{
state=“可用”
}
模块“专有网络”{
source=“terraform aws模块/vpc/aws”
version=“2.77.0”
name=“我的专有网络”
cidr=变量vpc\u cidr
azs=data.aws\u availability\u zones.azs.names
private_subnets=[“172.16.1.0/24”,“172.16.2.0/24”]您可以在一个子网的顶部使用函数。由于
cidrsubnets
将返回一个列表,因此根据索引将其切分,您将有两个列表,其中包含请求的公共IP和私有IP:

module "vpc" {
  ...
  private_subnets      = slice(cidrsubnets(var.vpc_cidr, 6, 6, 6, 6),0,2)
  public_subnets       = slice(cidrsubnets(var.vpc_cidr, 6, 6, 6, 6),2,4)
  ...
}

module "vpc" {
  ...
  private_subnets      = slice(cidrsubnets(var.vpc_cidr, 6, 6, 6, 6),0,2)
  public_subnets       = slice(cidrsubnets(var.vpc_cidr, 6, 6, 6, 6),2,4)
  ...
}