Aws-cli: ec2 describe-route-tables с фильтром "Name = association.main, Values ​​= false" не работает должным образом

Созданный на 24 февр. 2016  ·  3Комментарии  ·  Источник: aws/aws-cli

Я надеялся использовать этот фильтр в сочетании с «Name = vpc-id, Values ​​= $ VPC_ID», чтобы получить всю таблицу маршрутов, отбрасывая основную таблицу маршрутов VPC, но при этом также отфильтровываются таблицы маршрутов с «ассоциациями»: [], где этого не должно быть.

Вот пример, иллюстрирующий проблему

$ 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 - лучшее место для обратной связи с сервисными группами.

Похоже, что сейчас нет ничего действенного со стороны интерфейса командной строки. Я собираюсь закрыть эту проблему. Сообщите мне, если я что-то пропустил.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги