无法使用 Terraform 创建 EC2。路由表关联卡在创建模式

发布时间:2021-03-08 12:23

我正在尝试创建一个简单的基础架构,其中包括 EC2、VPC 和与 Internet 网关的 Internet 连接,但是在通过 terraform apply 创建基础架构时,终端输出在路由表的创建模式下卡住了大约 5-6 分钟使用子网 ID 关联,然后最终抛出错误,即 vpc-id、routetableid、子网 ID 不存在且未找到。 下面分享一些具体的代码:

resource "aws_route_table" "dev-public-crt" {
    vpc_id = "aws_vpc.main-vpc.id"
    
    route {
        cidr_block = "0.0.0.0/0"        
        gateway_id = "aws_internet_gateway.dev-igw.id" 
    }
    
    tags = {
        Name = "dev-public-crt"
    }
}

resource "aws_route_table_association" "dev-crta-public-subnet-1"{
    subnet_id = "aws_subnet.dev-subnet-public-1.id"
    route_table_id = "aws_route_table.dev-public-crt.id"
}

resource "aws_vpc" "dev-vpc" {
    cidr_block = "10.0.0.0/16"
    tags = {
        Name = "dev-vpc"
    }    
}

resource "aws_subnet" "dev-subnet-public-1" {
    vpc_id = "aws_vpc.dev-vpc.id"
    cidr_block = "10.0.1.0/24"
    map_public_ip_on_launch = "true"  
    tags = {
        Name = "dev-subnet-public-1"
    }
}
回答1

您需要删除所有引用值周围的 "vpc_id = "aws_vpc.main-vpc.id" 应该是 vpc_id = aws_vpc.main-vpc.id 等。否则您尝试在vpc 的文字 id aws_route_table.
每当您想引用变量或资源或数据源时,要么根本不包含在 "aws_vpc.main-vpc.id" 中,要么使用 "

进行插值

结果应该是这样的:

"something ${aws_vpc.main-vpc.id} ..."

不能保证这有效,因为现在可能存在无效引用,但需要您清理这些引用