Скрипт Boto3 для вывода списка снимков EBS Не более 30 дней при экспорте данных экземпляра в CSV - PullRequest
0 голосов
/ 23 января 2020

Поиск сценария boto3 для определения снимков EBS старше 30 дней, который идентифицирует идентификатор экземпляра, идентификатор тома, имя тома, размер тома и тип тома, а затем экспортирует эти данные в CSV.

Наш план состоит в том, чтобы в конечном итоге удалить снимки старше 30 дней, но нам нужно просто начать с идентификации.

Спасибо !!

1 Ответ

0 голосов
/ 23 января 2020

Вот способ получить эту информацию.

Описание полей, доступных для доступа, см. describe_snapshots(). В этой документации также показан пример выходных данных, что позволяет относительно легко кодировать сценарии этого типа.

import boto3
from datetime import datetime, timezone

ec2_client = boto3.client('ec2')

snapshot_response = ec2_client.describe_snapshots(OwnerIds=['self'])

for snapshot in snapshot_response['Snapshots']:
    print(snapshot['SnapshotId'])
    print(snapshot['VolumeId'])
    print(snapshot['VolumeSize'])
    print(snapshot['StartTime'])
    days_old = (datetime.now(timezone.utc) - snapshot['StartTime']).days
    print(days_old)

    volume_response = ec2_client.describe_volumes(VolumeIds=[snapshot['VolumeId']])
    volume = volume_response['Volumes'][0]
    print(volume['VolumeType'])
    for attachment in volume['Attachments']:
        print(attachment['InstanceId'])

Вызов describe_volumes() потребовался для получения VolumeType и InstanceId, поскольку они являются атрибутами объема, из которого был сделан снимок. Если вы просто удаляете снимки на основе даты их создания, вам не нужно звонить describe_volumes().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...