列出所有 EC2 实例 - AWSCLI

List all EC2 Instances - AWSCLI

我想列出我们在 ~/.aws/credentials 上的每个帐户的所有 ec2 实例,但是 aws ec2 describe-instances 没有 return 任何东西。

ACC=$(cat ~/.aws/credentials | egrep "\[.*\]" | cut -d '[' -f2 | cut -d ']' -f1 | grep -v default | sort)
FILE="${HOME}/ec2.csv"

echo -e "ACCOUNT;EC2" > ${FILE}

for account in ${ACC}
do
    for region in $(aws ec2 describe-regions --profile default --region sa-east-1 --output text | cut -f3)
    do
        EC2=$(aws ec2 describe-instances --profile ${account} --region ${region} --query "Reservations[*].Instances[*].{PrivateIP:PrivateDnsName,Name:Tags[?Key=='Name']|[0].Value,Status:State.Name}" --output text)
        echo -e "${account};${EC2}" >> ${FILE}
    done
done

我在第二个 for.

上替换默认配置文件解决了这个问题
for region in $(aws ec2 describe-regions --profile ${account} --region sa-east-1 --output text | cut -f3)

这个脚本有效,我希望这个脚本能帮到你。