Постанова 1
Тому я вирішив це за допомогою наступного сценарію. Я спочатку опублікував це питання на випадок, якщо був простіший спосіб, про який я не знав.
#!/bin/bash
aws_profile=('profile1' 'profile2' 'profile3');
#loop AWS profiles
for i in "${aws_profile[@]}"; do
echo "${i}"
buckets=($(aws --profile "${i}" --region your_region s3 ls s3:// --recursive | awk '{print $3}'))
#loop S3 buckets
for j in "${buckets[@]}"; do
echo "${j}"
aws --profile "${i}" --region your_region s3 ls s3://"${j}" --recursive --human-readable --summarize | awk END'{print}'
done
done
Роздільна здатність 2
Використання інформаційних панелей у CloudWatch в консолі AWS.
Потім можна просто вказати всі відра S3 та додати статистику чисел, щоб відобразити показники розміру пам’яті.
Це не обійдеться вам за багато дзвінків API і може бути значно швидше, залежно від розміру відра s3 (потрібно досить багато часу, щоб отримати розмір на дуже великих відро).
Вирок
Створення інформаційної панелі ( роздільна здатність 2 ) для кожного облікового запису AWS було для мене найефективнішим варіантом, тому що для мене набагато швидше увійти та схопити показники вручну з кожного облікового запису AWS, ніж чекати завершення викликів API сценаріїв. :(