2015-10-26 59 views
3

如何使用AWS CLI在同一行中列出具有名称,州,实例大小和AZ的所有实例?如何使用AWS CLI在同一行中列出名称,状态,实例大小和AZ的所有实例

我接近这一点:

aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[], Placement.AvailabilityZone,InstanceType,State.Name]' --output text 

但是,在输出低于其他实例名称。我想让它们保持在同一行,以便我可以复制到电子表格。

回答

4

您需要更改Tags[?Key==名称].Value[]Tags[?Key==名称].Value[] | [0];我认为这是因为Tags[?Key==名称].Value[]返回一个文本输出格式不知道如何放在一行上的数组,管道到[0]为您提取(单个)元素。所以,完整的查询应该是:

aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[] | [0], Placement.AvailabilityZone,InstanceType,State.Name]' --output text 
+0

工作很好,谢谢! – user2225230

1

如果你不想使用管道语法你的眼睛挖出,考虑这个简单的shell解决方法:

aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[], Placement.AvailabilityZone,InstanceType,State.Name]' | \ 
while read Zone Type State ; do 
    read Name 
    echo "$Name $Zone $Type $State" 
done 

假设原来的命令返回2像这些线对每一台机器:

my-ec2-host-xyz 
us-east-1d  t2.micro  running 

上述脚本的输出将是:

my-ec2-host-xyz us-east-1d t2.micro running

这个破解很容易理解,可以很容易地适应 - 任何复杂性的输出文本。