【发布时间】:2021-01-24 17:18:07
【问题描述】:
我有以下 terraform 代码,当我尝试 terraform apply --auto-approve 时,它给了我这个错误
Terraform 修复未找到 ID 为 vpc 的 vpc 的匹配子网
我认为这是因为 data 块试图在创建子网后立即获取子网 ID。因为,大约 1 分钟后,我可以再次执行 terraform apply --auto-approve 并且效果很好。
我该如何解决这个问题?
# -------------------------------------------
# -------------------------------------------
# Create VPC
module "ecs_vpc" {
source = "./modules/7_vpc"
}
# -------------------------------------------
# -------------------------------------------
# Create SUBNETS
module "ecs_subnets_public_1" {
source = "./modules/8_subnet"
SUBNET_CIDR = "10.0.128.0/18"
VPC_ID = module.ecs_vpc.vpc_id
SUBNET_TAGS = {"Name" : "terraform-subnet-public-1"}
}
module "ecs_subnets_private_1" {
source = "./modules/8_subnet"
SUBNET_CIDR = "10.0.192.0/18"
VPC_ID = module.ecs_vpc.vpc_id
SUBNET_TAGS = {"Name" : "terraform-subnet-private-1"}
}
# -------------------------------------------
# -------------------------------------------
# Create IGW
module "ecs_igw" {
source = "./modules/9_igw"
IGW_TAGS = {"Name" : "terraform-igw"}
VPC_ID = module.ecs_vpc.vpc_id
}
# -------------------------------------------
# -------------------------------------------
# Create EIP for NAT
module "nat_eip" {
source = "./modules/10_eip"
EIP_NETWORK_BRODER_GROUP_REGION = "us-east-2"
EIP_TAGS = {"Name" : "terraform-nat-eip"}
}
# -------------------------------------------
# -------------------------------------------
# Create NAT
data "aws_subnet_ids" "public_1" {
vpc_id = module.ecs_vpc.vpc_id
tags = {
Name = "*terraform-subnet-public-1" // or two filter by a unique word use; *private*
}
}
output "public" {
value = data.aws_subnet_ids.public_1.id
}
data "aws_subnet_ids" "private_1" {
vpc_id = module.ecs_vpc.vpc_id
tags = {
Name = "*terraform-subnet-private-1" // or two filter by a unique word use; *private*
}
}
output "private" {
value = data.aws_subnet_ids.private_1.id
}
谢谢!
【问题讨论】:
标签: amazon-web-services terraform