如何使用 AWS CLI 在同一行中列出所有具有名称、状态、实例大小和 AZ 的实例
How do I use AWS CLI to list all instances with name, state, instance size and AZ in the same line
如何使用 AWS CLI 在同一行中列出所有实例的名称、状态、实例大小和可用区?
我接近这个:
aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[], Placement.AvailabilityZone,InstanceType,State.Name]' --output text
但是这会在其余部分下方输出实例名称。我想让它们保持在同一行,以便我可以复制到电子表格。
您需要将Tags[?Key==
姓名].Value[]
更改为Tags[?Key==
姓名].Value[] | [0]
;我认为这是因为 Tags[?Key==
Name].Value[]
returns 文本输出格式不知道如何放在一行的数组,管道到 [0]
提取(单) 元素出来给你。所以你的完整查询应该是:
aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[] | [0], Placement.AvailabilityZone,InstanceType,State.Name]' --output text
如果您不想被管道语法弄瞎眼睛,请考虑这个简单的 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
假设原始命令 returns 每台机器有 2 行这样的内容:
my-ec2-host-xyz
us-east-1d t2.micro running
上述脚本的输出将是:
my-ec2-host-xyz us-east-1d t2.micro running
这个 hack 很容易理解,并且很容易适应--任何复杂的输出文本。
如何使用 AWS CLI 在同一行中列出所有实例的名称、状态、实例大小和可用区?
我接近这个:
aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[], Placement.AvailabilityZone,InstanceType,State.Name]' --output text
但是这会在其余部分下方输出实例名称。我想让它们保持在同一行,以便我可以复制到电子表格。
您需要将Tags[?Key==
姓名].Value[]
更改为Tags[?Key==
姓名].Value[] | [0]
;我认为这是因为 Tags[?Key==
Name].Value[]
returns 文本输出格式不知道如何放在一行的数组,管道到 [0]
提取(单) 元素出来给你。所以你的完整查询应该是:
aws ec2 describe-instances --query 'Reservations[].Instances[].[Tags[?Key==`Name`].Value[] | [0], Placement.AvailabilityZone,InstanceType,State.Name]' --output text
如果您不想被管道语法弄瞎眼睛,请考虑这个简单的 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
假设原始命令 returns 每台机器有 2 行这样的内容:
my-ec2-host-xyz
us-east-1d t2.micro running
上述脚本的输出将是:
my-ec2-host-xyz us-east-1d t2.micro running
这个 hack 很容易理解,并且很容易适应--任何复杂的输出文本。