使用 Terraform 在 AWS VPC 中过滤以查找非主路由 table

Filter to find the non-main route table in AWS VPC with Terraform

必须使用什么特定语法才能使下面的 Terraform aws_route_table 数据源成功 return 未指定主路由 table 的路由 table在 VPC 中?

data "aws_route_table" "rt" {
  vpc_id = var.vpcId

  filter {
    name   = "association.main"
    values = [false]
  }

}

VPC中只有一条非主干路由table。因此,如果过滤语法正确,过滤 main=false 应该可以识别它。

以上代码目前产生的错误是:

Error: Your query returned no results. Please change your search criteria and try again

我自己做了一些测试,下面是我的一些发现。 aws_route_tables rather then aws_route_table 应该用于 return 多个转发:

data "aws_route_tables" "rt" {
  vpc_id = var.vpcId

  filter {
    name   = "association.main"
    values = [false]
  }
}

然而,关于,知道的事情很少:

  1. 不与任何子网关联的 RT 将不会return编辑
  2. 如果主路由 table 与子网相关联,它仍然会被 return 编辑。基本上,如果 主路由 table 与子网相关联 它将同时被视为主路由和非主路由。

基本上,上述过滤器的实用性在很大程度上取决于您的 VPC 和 RT 的组织方式。

下面是 AWS CLI,我也用它来仔细检查其中的一些发现:

aws ec2 describe-route-tables --filters Name=vpc-id,Values=vpc-0a347b77b8c0109b6 Name=association.main,Values=false