【发布时间】:2019-03-01 16:16:18
【问题描述】:
有一个 modules/network/testvpc 和 modules/network/subnet 模块配置。
主文件夹/模块/网络/testvpc/main.tf
variable "vpccidr" {type="list"}
variable "vpcname" {type="list"}
resource "aws_vpc" "customVpc" {
count = "${length(var.vpccidr)}"
cidr_block = "${element(var.vpccidr,count.index)}"
tags {
Name = "${element(var.vpcname,count.index)}"
}
主文件夹/模块/网络/子网/main.tf
variable "subcidr" {type="list"}
variable "subname" {type="list"}
resource "aws_subnet" "subnet" {
count = "${length(var.subcidr)}"
vpc_id = "${element(aws_vpc.customVpc.*.id, count.index)}"
cidr_block = "${element(var.subcidr, count.index)}"
tags {
Name = "${element(var.subname, count.index)}"
}
}
主文件夹/main.tf
module "testvpc" {
source = "./modules/network/testvpc"
vpccidr="${var.vpccidr}"
vpcname="${var.vpcname}"
}
module "subnet" {
source = "./modules/network/subnet"
subcidr = "${var.subcidr}"
subname = "${var.subname}"
}
主文件夹/var.tf
variable "vpccidr" {type="list"}
variable "vpcname" {type="list"}
variable "subcidr" {type="list"}
variable "subname" {type="list"}
主文件夹/terraform.tfvars
- vpccidr=["10.1.0.0/16","10.2.0.0/16","10.3.0.0/16"]
vpcname=["vpc-shared","vpc-sand","vpc-preprod"]
subcidr=["10.1.1.0/24","10.2.1.0/24","10.3.1.0/24"]
subname=["sub-shared","sub-sand","sub-preprod"]
-
在运行 terraform validate -var-file=terraform.tfvars 时出现以下错误
Error: resource 'aws_subnet.subnet' config: unknown
resource 'data.aws_vpc.customVpc' referenced in variable
data.aws_vpc.customVpc.*.id
是因为 aws_subnet 无法找到 vpc_id,因为资源 aws_vpc 不是创建它。我将 testvpc 和子网都称为 mainfolder/main.tf 中的模块。我错过了什么。
其次是 aws_vpc 和 aws_subnet 中的循环。它应该创建 vpc-shared 10.1.0.0/16 并在该 vpc 内进行子共享,依此类推
【问题讨论】:
-
还尝试提及“data” vpc_id = "${element(data.aws_vpc.customVpc.*.id, count.index)}" 但没有帮助
标签: terraform