Amazon web services AWS:如何安排在1周后删除EBS快照?

Amazon web services AWS:如何安排在1周后删除EBS快照?,amazon-web-services,snapshot,cloudwatch,Amazon Web Services,Snapshot,Cloudwatch,我计划使用CloudWatch自动创建EBS快照 如何安排自动删除旧快照 这可能会有所帮助。这是我编写的一个Python程序,它获取所有卷的快照并保留最后2个快照 您可以在EC2实例上运行这样的程序,或者将其转换为作为计划的AWS Lambda函数运行 #!/usr/bin/env python import boto.ec2, os MAX_SNAPSHOTS = 2 # Number of snapshots to keep # Connect to EC2 in this reg

我计划使用CloudWatch自动创建EBS快照
如何安排自动删除旧快照

这可能会有所帮助。这是我编写的一个Python程序,它获取所有卷的快照并保留最后2个快照

您可以在EC2实例上运行这样的程序,或者将其转换为作为计划的AWS Lambda函数运行

#!/usr/bin/env python

import boto.ec2, os

MAX_SNAPSHOTS = 2   # Number of snapshots to keep

# Connect to EC2 in this region
connection = boto.ec2.connect_to_region('<insert region here>')

# Get a list of all volumes
volumes = connection.get_all_volumes()

# Create a snapshot of each volume
for v in volumes:
  connection.create_snapshot(v.id)

  # Too many snapshots?
  snapshots = v.snapshots()
  if len(snapshots) > MAX_SNAPSHOTS:

    # Delete oldest snapshots, but keep MAX_SNAPSHOTS available
    snap_sorted = sorted([(s.id, s.start_time) for s in snapshots], key=lambda k: k[1])
    for s in snap_sorted[:-MAX_SNAPSHOTS]:
      print "Deleting snapshot", s[0]
      connection.delete_snapshot(s[0])

您可以拍摄快照并在这些快照上放置诸如DeleteOn:之类的标记

编写另一个lambda,根据此标记读取快照,并在特定日期将其删除。botocore文件对此有详细说明: