2014-10-03 67 views
0

我想删除一个AMI以及与其关联的所有快照。根据文档:Python boto ec2 - 删除AMI的快照

deregister_image(image_id, delete_snapshot=True) 
Unregister an AMI. 

Parameters: 
image_id (string) – the ID of the Image to unregister 
delete_snapshot (bool) – Set to True if we should delete the snapshot associated with an EBS volume mounted at /dev/sda1 

那么这是否意味着这只会删除根EBS卷的快照?其他EBS卷的快照怎么样?我如何删除它们?

或者我有快照完全错误的概念吗?对于所有EBS支持的设备是否只有一个快照?

回答

0

如果,当你最初注册的AMI,则供给的snapshot_id参数作为用于图像根设备使用,在所述unregister_image参数delete_snapshot允许可选删除该快照时AMI是未注册的。

你想删除哪些与AMI相关的其他快照?

+0

好吧,我从来没有任何其他设备,除了根目录作为EBS支持的卷。但是我假设你也可以创建其他设备作为EBS支持的卷。因此,当您创建AMI时,EC2将自动创建所有这些EBS设备的快照。当我删除AMI时,我想删除创建特定AMI时创建的所有这些快照。 – drunkenfist 2014-10-05 18:15:39

+0

我从来没有这样做过,但我看不出有什么理由不能使用块设备映射结构调用''create_image'',以创建大量从快照创建的卷。在这种情况下,boto当前只会删除与根卷关联的快照(如果delete_snapshot参数为True),但它肯定可以与块设备映射中的其他快照ID相同。当然,您也可以在自己的代码中执行此操作。你可以为博托创建一个问题,让它做到这一点。 – garnaat 2014-10-05 22:21:17

+0

@gamaat感谢您的回复。我不知道EBS和块设备是相同的。我可以使用image.block_device_mapping获取所有EBS支持的设备。 – drunkenfist 2014-10-06 06:07:13