没有 VpcId 的 aws cli 描述实例

aws cli describe-instances without a VpcId

我想 运行 aws ec2 describe-instances 寻找任何没有 VpcId 属性 的实例(ec2-classic 中的实例)

如何使用 --query 标志或 JMESPath 表达式 return ec2-classic 实例来获得 没有 VpcId 的结果?

一种方法是查询所有实例并查找没有 SubnetId 的条目。以下 CLI 列出了 EC2 经典实例。您可以更改 --query 选项以获得所需的属性。

aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId, Tags[?Key==`Name`].Value | [0], State.Name, SubnetId]' --output text | grep -v subnet

输出

i-123456789abcdef01 MyClassicRunning    running None
i-123456789abcdef23 MyClassicStopped    stopped None

此 cli 命令将列出所有没有 VpcId.

的实例
aws ec2 describe-instances --region us-east-1 --query 'Reservations[*].Instances[?!not_null(VpcId)] | [].[InstanceId]'  --output text

您可以对其进行调整以列出所有具有 VpcId.

的实例
aws ec2 describe-instances --region us-east-1 --query 'Reservations[*].Instances[?not_null(VpcId)] | [].[InstanceId]'  --output text