简体   繁体   English

使用 terraform 创建 aws 路由表的问题

[英]Problems in creating aws route table using terraform

Running terraform v1.0.9 with AWS plugin v3.63.0 on a mac在 mac 上使用 AWS 插件 v3.63.0 运行 terraform v1.0.9

Following hashicorp instructions for creating a route table ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table ), but getting the following error:按照 hashicorp 说明创建路由表 ( https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table ),但出现以下错误:

Error: Incorrect attribute value type
...
Inappropriate value for attribute "route": element 0: attributes "carrier_gateway_id", "destination_prefix_list_id", "egress_only_gateway_id",
│ "instance_id", "ipv6_cidr_block", "local_gateway_id", "nat_gateway_id", "network_interface_id", "transit_gateway_id", "vpc_endpoint_id", and
│ "vpc_peering_connection_id" are required.

Here is my main.tf:这是我的 main.tf:

provider "aws" {
  region = "us-east-1"
}

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

resource "aws_internet_gateway" "gw" {
  vpc_id = aws_vpc.my-test-vpc.id
}

resource "aws_route_table" "prod-route-table" {
  vpc_id = aws_vpc.my-test-vpc.id

  route = [
    {
      cidr_block = "0.0.0.0/0"
      gateway_id = aws_internet_gateway.gw.id
    }
  ]

  tags = {
    Name = "production"
  }
}

I have run into something similar, without getting to the bottom of the root cause, so this is not the best possible answer, but moving the route out into its own explicit resource works for me:我遇到了类似的事情,但没有找到根本原因,所以这不是最好的答案,但是将路由移到它自己的显式资源中对我有用:

resource "aws_route_table" "prod-route-table" {
  vpc_id = aws_vpc.my-test-vpc.id

  tags = {
    Name = "production"
  }
}

resource "aws_route" "prod-route-igw" {
  route_table_id            = aws_route_table.prod-route-table.id
  destination_cidr_block    = "0.0.0.0/0"
  gateway_id                = aws_internet_gateway.gw.id
  depends_on                = [aws_route_table.prod-route-table]
}

It's very Simple.这很简单。 But you can't seem to notice that you're not following syntax.但是您似乎没有注意到您没有遵循语法。 it's always route {#config} not like route = { #config }它总是 route {#config} 不像 route = { #config }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM