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



下面的Terraformaws_route_table数据源必须使用哪些特定语法才能成功返回VPC中未指定为主路由表的路由表?

data "aws_route_table" "rt" {
vpc_id = var.vpcId
filter {
name   = "association.main"
values = [false]
}
}

VPC中只有一个非主路由表。因此,如果筛选器语法正确,则main=false的筛选应该识别它。

上述代码当前产生的错误为:

错误:您的查询没有返回任何结果。请更改您的搜索条件,然后重试

我自己做了一些测试,下面是我的一些发现。应该使用aws_route_tables而不是aws_route_table来返回多个RT:

data "aws_route_tables" "rt" {
vpc_id = var.vpcId
filter {
name   = "association.main"
values = [false]
}
}

然而,知之甚少:

  1. 不与任何子网关联的RT将不会返回
  2. 如果主路由表与子网相关联,则它仍将被返回。基本上,如果主路由表与子网关联,它将同时被视为主路由表和非主路由表

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

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

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

相关内容

  • 没有找到相关文章

最新更新