我试图通过单个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
答案 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)
您一次只能列出一个区域中的实例。
每个区域都是区域的集合。您正在连接到每个区域,以列出该区域内区域中的实例。这些区域是数据中心,大多数区域都很大。
您将需要遍历每个区域。