Eu esperava usar este filtro em combinação com "Name = vpc-id, Values = $ VPC_ID" para obter todas as tabelas de rota ao descartar a tabela de rota principal do VPC, mas isso também filtra as tabelas de rota com "Associações": [], onde não deveria.
Aqui está um exemplo para ilustrar o problema
$ 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": []
}
Parece que estamos enviando a solicitação corretamente ao EC2. Como se trata de um filtro do lado do servidor, essa é uma alteração que precisaria ser feita no lado do EC2.
A melhor solução que você tem agora é usar o filtro do lado do servidor --filters
junto com --query
, um filtro do lado do cliente para realizar o que você deseja:
aws ec2 describe-route-tables --filters "Name=vpc-id,Values=$VPC_ID" --query 'RouteTables[?Associations[0].Main != `true`]'
Isso funciona para você?
Obrigado, eu não estava procurando uma solução alternativa, só queria sinalizar que o comportamento observado não é o esperado. Vou enviar um relatório de bug no fórum da AWS (PS: eles têm uma ferramenta melhor? Ou ainda é um fórum)
Ah ok, obrigado pelo feedback. Os fóruns da AWS são o melhor lugar para dar feedback às equipes de serviço.
Parece que não há nada acionável agora do lado da CLI. Vou prosseguir e encerrar esse problema. Avise-me se perdi algo.