boto3 从列表中删除 ec2 快照
boto3 Deleting ec2 Snapshots out of List
我正在创建一个 python 列表,其中存储没有特定标签的快照 ID。是否可以自动删除列表中的所有快照?
for snapshot in snapshots.filter(OwnerIds=['self']):
# checking if PSP is set
if (not costreferencetag_isset_snapshot(snapshot)):
tag_snapshot = str(snapshot.id)
Snapshot_ID.append(tag_snapshot)
continue
else:
costreference_snapshot = get_costreference_snapshot(snapshot)
if costreference_snapshot not in managedpsp:
tag_snapshot = str(snapshot.id)
Snapshot_ID.append(tag_snapshot)
ec2.delete_snapshot(Snapshot_ID)
删除过程应该发生在代码示例的最后一行。
我现在无法真正测试它,因为这会删除我目前仍必须使用的快照。
该列表是 Snapshot_ID
,只存储我要删除的正确快照。
谁能确认这行得通吗?
delete_snapshot()
方法只接受一个快照 ID。
您必须通过快照 ID 列表循环它
for s in Snapshot_ID:
ec2.delete_snapshot(SnapshotId=s)
或者删除它们而不是将它们附加到列表中
for snapshot in snapshots.filter(OwnerIds=['self']):
# checking if PSP is set
if (not costreferencetag_isset_snapshot(snapshot)):
tag_snapshot = str(snapshot.id)
ec2.delete_snapshot(SnapshotId=tag_snapshot)
continue
else:
costreference_snapshot = get_costreference_snapshot(snapshot)
if costreference_snapshot not in managedpsp:
tag_snapshot = str(snapshot.id)
ec2.delete_snapshot(SnapshotId=tag_snapshot)
注意:您可以指定DryRun=True
来验证它是否有效,而无需实际删除快照。
我正在创建一个 python 列表,其中存储没有特定标签的快照 ID。是否可以自动删除列表中的所有快照?
for snapshot in snapshots.filter(OwnerIds=['self']):
# checking if PSP is set
if (not costreferencetag_isset_snapshot(snapshot)):
tag_snapshot = str(snapshot.id)
Snapshot_ID.append(tag_snapshot)
continue
else:
costreference_snapshot = get_costreference_snapshot(snapshot)
if costreference_snapshot not in managedpsp:
tag_snapshot = str(snapshot.id)
Snapshot_ID.append(tag_snapshot)
ec2.delete_snapshot(Snapshot_ID)
删除过程应该发生在代码示例的最后一行。 我现在无法真正测试它,因为这会删除我目前仍必须使用的快照。
该列表是 Snapshot_ID
,只存储我要删除的正确快照。
谁能确认这行得通吗?
delete_snapshot()
方法只接受一个快照 ID。
您必须通过快照 ID 列表循环它
for s in Snapshot_ID:
ec2.delete_snapshot(SnapshotId=s)
或者删除它们而不是将它们附加到列表中
for snapshot in snapshots.filter(OwnerIds=['self']):
# checking if PSP is set
if (not costreferencetag_isset_snapshot(snapshot)):
tag_snapshot = str(snapshot.id)
ec2.delete_snapshot(SnapshotId=tag_snapshot)
continue
else:
costreference_snapshot = get_costreference_snapshot(snapshot)
if costreference_snapshot not in managedpsp:
tag_snapshot = str(snapshot.id)
ec2.delete_snapshot(SnapshotId=tag_snapshot)
注意:您可以指定DryRun=True
来验证它是否有效,而无需实际删除快照。