vis*_*l.k 4 python amazon-web-services boto3 aws-lambda
我已经写了一个删除旧快照的程序,但是对我来说现在的问题是如果快照附有一个ami,那么它不会被删除并且程序也会停止,并显示以下消息:
botocore.exceptions.ClientError:调用DeleteSnapshot操作时发生错误(InvalidSnapshot.InUse):ami-12345当前正在使用快照snap-12345678
我希望程序仅跳过那些快照,然后继续删除其他快照。这是我的代码如下:
import boto3
import datetime
client = boto3.client('ec2',region_name='us-west-1')
snapshots = client.describe_snapshots(OwnerIds=['12345678'])
for snapshot in snapshots['Snapshots']:
a= snapshot['StartTime']
b=a.date()
c=datetime.datetime.now().date()
d=c-b
if d.days>10:
id = snapshot['SnapshotId']
client.delete_snapshot(SnapshotId=id)
Run Code Online (Sandbox Code Playgroud)
我自己解决了。这是代码:
import boto3
import datetime
client = boto3.client('ec2',region_name='us-west-1')
snapshots = client.describe_snapshots(OwnerIds=['12345678'])
for snapshot in snapshots['Snapshots']:
a= snapshot['StartTime']
b=a.date()
c=datetime.datetime.now().date()
d=c-b
try:
if d.days>10:
id = snapshot['SnapshotId']
client.delete_snapshot(SnapshotId=id)
except Exception,e:
if 'InvalidSnapshot.InUse' in e.message:
print "skipping this snapshot"
continue
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4345 次 |
| 最近记录: |