python - 如何使用 python/boto 获取最新的 aws 卷快照 id#?

标签 python amazon-web-services aws-cli

我是 python 新手,如果有人向我分享一个示例脚本,这将会非常有帮助
获取每个 AWS 卷的最新快照 ID#。

我正在使用 AWS api。

最佳答案

这是我编写的一个 Python 脚本,它连接到一个区域并为每个卷创建快照,然后删除除最近的 N 个快照之外的快照。

您将看到快照按 start_time 排序,然后使用快照 ID 删除最旧的快照:

#!/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('us-west-2')

# 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])

通过 snap_sorted 分配,您可以找到最旧的快照。

关于python - 如何使用 python/boto 获取最新的 aws 卷快照 id#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28221043/

相关文章:

python - 比较 Python Web 框架及其各自的 HTML5 API 实现

.net - 如何在 Amazon S3 中获取 MIME 类型的对象?

amazon-web-services - AWS S3 Glacier 上传存档需要很长时间才能完成执行 - 检查状态或加快上传速度的方法?

amazon-web-services - AWS CLI 可以与联合登录一起使用吗?

amazon-web-services - EksCtl:通过群集配置文件更新节点定义不起作用

amazon-web-services - 正确的 aws cli 语法以在非默认 VPC 中查找 VPC 安全组

python - 使用 python 替换 json 值中的双引号

python - 函数调用中的双括号是什么意思?例如函数(foo)(酒吧)

python - "builtin server"如何与 Flask 网络应用程序一起工作?

amazon-web-services - 在 CloudFormation 用户数据中使用 AWS Parameter Store SecureStrings