Terraform执行plan报错:aws_subnets不支持vpc_id参数求助
解决Terraform中
aws_subnets数据源的"Unsupported argument"错误 问题根源
你将已弃用的aws_subnet_ids数据源替换为aws_subnets后,错误沿用了原数据源的vpc_id顶级参数,但aws_subnets并不支持这种写法,它需要通过filter块来指定VPC过滤条件。
修正方案
修改data_vpc.tf中的子网数据源配置,替换原aws_subnet_ids部分:
data "aws_vpc" "default_vpc" { default = true } # 获取默认VPC下的所有子网 data "aws_subnets" "default_public" { filter { name = "vpc-id" values = [data.aws_vpc.default_vpc.id] } }
补充说明
- 无需单独声明
vpc_id变量,data.aws_vpc.default_vpc已经自动获取了当前区域默认VPC的ID,通过filter块传递给aws_subnets即可。 - 如果需要精准筛选公共子网,可以添加额外过滤条件:
data "aws_subnets" "default_public" { filter { name = "vpc-id" values = [data.aws_vpc.default_vpc.id] } filter { name = "map-public-ip-on-launch" values = ["true"] } }
内容的提问来源于stack exchange,提问作者Jingania
相关产品推荐
相关产品推荐

