[查找boto3脚本以识别30天以上的EBS快照,该快照标识实例ID,卷ID,卷名称,卷大小和卷类型,然后将该数据导出到CSV。
我们的计划是最终删除30天以上的快照,但希望仅从识别开始。
谢谢!
这里是一种获取信息的方法。
有关所访问字段的说明,请参见describe_snapshots()
。该文档还显示了示例输出,这使得编写这种类型的脚本相对容易。
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
。