Aws-cli: 带有过滤器“Name=association.main,Values=false”的 ec2 描述路由表未按预期工作

创建于 2016-02-24  ·  3评论  ·  资料来源: aws/aws-cli

我希望将此过滤器与“Name=vpc-id,Values=$VPC_ID”结合使用来获取所有路由表,同时丢弃 VPC 的主路由表,但这也会过滤掉带有“Associations”的路由表:[],哪里不应该。

这是一个说明问题的示例

$ aws ec2 describe-route-tables --filters "Name=vpc-id,Values=$VPC_ID" 
{
    "RouteTables": [
        {
            "RouteTableId": "rtb-186a857c",
            "PropagatingVgws": [],
            "Tags": [
                {
                    "Value": "dev-vpc-default-gw-routing-table",
                    "Key": "Name"
                }
            ],
            "Associations": [],
            "Routes": [
                {
                    "State": "active",
                    "DestinationCidrBlock": "10.0.0.0/16",
                    "GatewayId": "local",
                    "Origin": "CreateRouteTable"
                },
                {
                    "State": "blackhole",
                    "DestinationCidrBlock": "0.0.0.0/0",
                    "GatewayId": "igw-35fa8b50",
                    "Origin": "CreateRoute"
                }
            ],
            "VpcId": "vpc-09be846c"
        },
        {
            "RouteTableId": "rtb-096a856d",
            "PropagatingVgws": [],
            "Tags": [],
            "Associations": [
                {
                    "RouteTableId": "rtb-096a856d",
                    "RouteTableAssociationId": "rtbassoc-6469c600",
                    "Main": true
                }
            ],
            "Routes": [
                {
                    "State": "active",
                    "DestinationCidrBlock": "10.0.0.0/16",
                    "GatewayId": "local",
                    "Origin": "CreateRouteTable"
                }
            ],
            "VpcId": "vpc-09be846c"
        }
    ]
}

$ aws ec2 describe-route-tables --filters "Name=vpc-id,Values=$VPC_ID" "Name=association.main,Values=false"  
{
    "RouteTables": []
}
closing-soon

所有3条评论

看起来我们正在将请求正确发送到 EC2。 鉴于这是一个服务器端过滤器,这是需要在 EC2 端进行的更改。

您现在拥有的最佳解决方案是使用--filters服务器端过滤器以及--query客户端过滤器来完成您想要的:

aws ec2 describe-route-tables --filters "Name=vpc-id,Values=$VPC_ID" --query 'RouteTables[?Associations[0].Main != `true`]'

那对你有用吗?

谢谢我不是在寻找解决方法,我只是想表明观察到的行为不是预期的。 我会看到在 AWS 论坛中提交错误报告(PS:他们有更好的工具吗?还是它仍然是论坛)

啊好的,谢谢反馈。 AWS 论坛是向服务团队提供反馈的最佳场所。

听起来现在从 CLI 方面没有什么可操作的。 我将继续并结束这个问题。 如果我错过了什么,请告诉我。

此页面是否有帮助?
0 / 5 - 0 等级