我只想要特定卷的最新快照。
response_v=boto3.client("ec2").describe_snapshots(Filters=[{"Name":"volume-id","Values":["vol-fffffffffff"]}])
如何完成?
看起来describe_snapshots
方法首先返回最新的方法,但您真的不应该依靠。
我认为您可以安全地依靠StartTime
字段,寻找返回的所有快照的最大值。
快照异步出现;立即创建时间点快照
因此,"最大"的开始时间将是最新的快照
我写了这一点代码,以使用最新的快照开始时间打印快照_ID。我的python-fu不是最伟大的,但这有效。
import boto3
import datetime
import pytz
utc = pytz.UTC
starttime=datetime.datetime(1,1,1,tzinfo=utc)
snap_id = ""
volume_id = "<put your volume id here or write something more elegant to pass it in>"
region = 'us-east-1'
session = boto3.Session(profile_name='default')
ec2 = session.client('ec2', region_name=region)
response = ec2.describe_snapshots(Filters=[{"Name":"volume-id","Values":[volume_id]}])
# print(response['Snapshots'])
for snap in response['Snapshots']:
if snap['StartTime'] > starttime:
snap_id = snap['SnapshotId']
starttime= snap['StartTime']
print(snap_id)
参考
- https://docs.aws.amazon.com/awsec2/latest/userguide/ebs-creating-snapshot.html