Вот способ получить эту информацию.
Описание полей, доступных для доступа, см. 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()
.