Aws-cli: ec2 describe-route-tables with filter "Name=association.main,Values=false" funktioniert nicht wie erwartet

Erstellt am 24. Feb. 2016  ·  3Kommentare  ·  Quelle: aws/aws-cli

Ich hatte gehofft, diesen Filter in Kombination mit "Name=vpc-id,Values=$VPC_ID" zu verwenden, um alle Routing-Tabellen zu erhalten, während die Haupt-Routing-Tabelle der VPC verworfen wird, aber dies filtert auch Routing-Tabellen mit "Associations" heraus: [], wo es nicht sollte.

Hier ist ein Beispiel um das Problem zu veranschaulichen

$ 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

Alle 3 Kommentare

Anscheinend senden wir die Anfrage ordnungsgemäß an EC2. Da es sich um einen serverseitigen Filter handelt, müsste dies auf der Seite von EC2 vorgenommen werden.

Die beste Lösung, die Sie jetzt haben, besteht darin, den serverseitigen Filter --filters zusammen mit --query , einem clientseitigen Filter, um das zu erreichen, was Sie wollen:

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

Funktioniert das für dich?

Danke, ich habe nicht nach einem Workaround gesucht, ich wollte nur signalisieren, dass das beobachtete Verhalten nicht das ist, was man erwarten kann. Ich werde dafür sorgen, dass ein Fehlerbericht im AWS-Forum eingereicht wird (PS: Haben sie ein besseres Tool? oder ist es immer noch ein Forum)

Ah okay, danke für die Rückmeldung. Die AWS-Foren sind der beste Ort, um Serviceteams Feedback zu geben.

Klingt so, als gäbe es von der CLI-Seite aus nichts umsetzbares. Ich werde weitermachen und dieses Thema schließen. Melde mich, wenn ich etwas verpasst habe.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen