【发布时间】:2016-10-22 16:51:42
【问题描述】:
我正在尝试运行 boto3 以循环浏览超过 14 天的快照。 它可以很好地找到所有超过 14 天的快照,并且我已经验证所有这些都可以正常工作。问题是当它通过字典试图删除时,看起来函数没有正确评估变量(见下文)。
它似乎只是将它作为一个字符串包含在内。
循环使用“for snapshot in ...”遍历字典,如果标签找到准备删除的快照。这是“如果”部分:
if snap_start_time < expiry: # check if it's more than a <expiry> old
print "Deleting Snapshot: " + snapshot['SnapshotId']
response = ec2client.delete_snapshot(
SnapshotId=snapshot['SnapshotId']
)
这里的错误:
Deleting Snapshot: snap-f4f0079d
Traceback (most recent call last):
File "./aws-snap.py", line 27, in <module>
SnapshotId=snapshot['SnapshotId']
File "/usr/lib/python2.6/site-packages/botocore/client.py", line 159, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/lib/python2.6/site-packages/botocore/client.py", line 494, in _make_api_call
raise ClientError(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (InvalidSnapshot.NotFound) when calling the DeleteSnapshot operation: None
有什么线索吗? \o/
【问题讨论】:
-
执行此代码时快照是否可能已被删除,或者它正在尝试第二次删除?
-
我非常怀疑它,否则它一开始就不会出现在脚本中。即如果它已被删除,那么它不会再次尝试删除它,因为它无法找到它。编辑:刚刚检查过,他们都还在那里。 :(
标签: python boto3 amazon-ebs