如何使用单个命令显示来自多个区域的ec2实例详细信息,以我为例,来自us-east-1和us-west-1?

时间:2019-02-04 03:10:56

标签: amazon-web-services amazon-ec2 aws-cli

我试图通过单个AWS CLI命令获取托管在us-east-1和us-west-1区域中的ec2实例的实例ID,可用性区域,实例状态,实例名称(从标签),以便我可以将输出导出到excel文件中。

我可以使用以下命令一次从一个区域获取输出,但是找不到一种使用一个命令从两个区域获取输出的方法。

aws ec2 describe-instances --region us-east-1 --query Reservations[].Instances[].{ID:InstanceId,State:State.Name,AZ:Placement.AvailabilityZone,TagName:Tags[0].Value} --output text>C:\Users\PiyushVermaVerma\Desktop\testfile.xls

和:

aws ec2 describe-instances --region us-west-1 --query Reservations[].Instances[].[InstanceId,Tags[0].Value,Placement.AvailabilityZone,State.Name] --output text>C:\Users\PiyushVermaVerma\Desktop\testfile.xls

2 个答案:

答案 0 :(得分:2)

在Bash中,不能指定多个区域,但是您始终可以这样做:

for region in us-east-1 us-west-1 ; do
  aws ec2 describe-instances --query \
    'Reservations[*].Instances[*].{ID:InstanceId,State:State.Name,AZ:Placement.AvailabilityZone,TagName:Tags[0].Value}' \
  --output text --region $region
done > C:\Users\PiyushVermaVerma\Desktop\testfile.xls

对于Windows Batch,最好只按顺序运行两个命令,并使用append >>运算符:

aws ec2 describe-instances --region us-east-1 --query Reservations[].Instances[].{ID:InstanceId,State:State.Name,AZ:Placement.AvailabilityZone,TagName:Tags[0].Value} --output text > C:\Users\PiyushVermaVerma\Desktop\testfile.xls
aws ec2 describe-instances --region us-east-1 --query Reservations[].Instances[].{ID:InstanceId,State:State.Name,AZ:Placement.AvailabilityZone,TagName:Tags[0].Value} --output text >> C:\Users\PiyushVermaVerma\Desktop\testfile.xls

答案 1 :(得分:1)

您一次只能列出一个区域中的实例。

每个区域都是区域的集合。您正在连接到每个区域,以列出该区域内区域中的实例。这些区域是数据中心,大多数区域都很大。

您将需要遍历每个区域。