sh 获取所有可用区中的所有EC2实例类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 获取所有可用区中的所有EC2实例类型相关的知识,希望对你有一定的参考价值。

#!/bin/bash                                                                    

echo "Getting list of Availability Zones"
all_regions=$(aws ec2 describe-regions --output text --query 'Regions[*].[RegionName]' | sort)
all_az=() 

while read -r region; do
  az_per_region=$(aws ec2 describe-availability-zones --region $region --query 'AvailabilityZones[*].[ZoneName]' --output text | sort)
  while read -r az; do
    all_az+=($az)
  done <<< "$az_per_region"
done <<< "$all_regions"  

counter=1
num_az=${#all_az[@]}
for az in "${all_az[@]}"
do
  echo "Checking Availability Zone $az ($counter/$num_az)"
  region=$(echo $az | rev | cut -c 2- | rev)
  raw=$(aws ec2 describe-reserved-instances-offerings --filters "Name=availability-zone,Values=$az"  --region $region)
  instance_types=$(echo $raw | jq '.ReservedInstancesOfferings[] | .InstanceType' | sort -u)

  while read -r instance_type; do
    echo "$region;$az;$instance_type" >> instance-types.csv
  done <<< "$instance_types" 

  counter=$((counter+1))
done

以上是关于sh 获取所有可用区中的所有EC2实例类型的主要内容,如果未能解决你的问题,请参考以下文章

查找 EC2 实例的所有附加卷

为啥所有 EC2 实例都在同一个可用区启动?

sh 以逗号分隔的字符串获取所有EC2区域

python AWS EC2:获取所有未标记的EC2实例

sh 获取EC2实例标记

boto3如何获取单个ec2实例的所有标签并附加新标签