このフィルターを「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フォーラムは、サービスチームにフィードバックを提供するのに最適な場所です。
現在、CLI側から実行可能なものは何もないようです。 先に進んで、この問題を解決します。 私が何かを逃したかどうか私に知らせてください。