Я надеялся использовать этот фильтр в сочетании с «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": []
}
Похоже, мы правильно отправляем запрос в 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 - лучшее место для обратной связи с сервисными группами.
Похоже, что сейчас нет ничего действенного со стороны интерфейса командной строки. Я собираюсь закрыть эту проблему. Сообщите мне, если я что-то пропустил.