terraform - 将 vpc_id 参数从不同的 VPC 传递到多个子网
Posted
技术标签:
【中文标题】terraform - 将 vpc_id 参数从不同的 VPC 传递到多个子网【英文标题】:terraform - passing vpc_id parameter from different VPC's to several subnets 【发布时间】:2021-09-25 14:28:27 【问题描述】:我是 terraform 的新手,正在尝试以下方法:
-
我创建了 3 个 aws VPC:
#VPC 创建
enter codresource "aws_vpc" "new_vpc"
cidr_block = var.new_vpc[count.index]
count = 3
tags =
Name = var.vpc_name[count.index]
count = 3
-
variables.tf如下:
#varibales 用于 vpc #========================
variable "new_vpc"
type = list
variable "vpc_name"
type = list
terraform.tfvars 是:
new_vpc=["10.0.0.0/16" , "10.0.0.0/17" , "10.0.0.0/18"]
vpc_name=["DEV_VPC" , "UAT_VPC" , "PROD_VPC" ]
所有 VPC 均已成功创建
下一步是创建 3 个子网,每个子网需要分配给不同的 VPC。
为了创建子网,需要以下参数:vpc_id + cidr_block
需要您对所需的 vpc_id 参数的建议 - 如何传递每个子网不同的 vpc_id(正如我在上面提到的 3 个 vpc 的创建)
10 倍很多
【问题讨论】:
【参考方案1】:由于您使用 count 来创建 vpc,因此您也可以使用 count 来创建子网。
resource "aws_subnet" "You_subnet_name"
count = 3
vpc_id = aws_vpc.new_vpc[count.index].id
不需要指定 cidr,vpc id 就足够了。 但是,您需要指定 cidr_block 部分来为您的子网分配 IP 范围。 如果您想将 vpc 中的所有 ip 空间用于 1 个子网,您只需执行以下操作:
resource "aws_subnet" "You_subnet_name"
count = 3
vpc_id = aws_vpc.new_vpc[count.index].id
cidr_block = aws_vpc.new_vpc[count.index].cidr_block
【讨论】:
以上是关于terraform - 将 vpc_id 参数从不同的 VPC 传递到多个子网的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Terraform 在 AWS SSM 参数中存储三元素元组?
如何在 terraform 路由表中引用 AWS 本地前缀列表?