boto - 使用 boto 查找最后一个快照

标签 boto amazon-redshift

我已经阅读了关于“describe_cluster_snapshots”的解释......

http://docs.pythonboto.org/en/latest/ref/redshift.html#boto.redshift.layer1.RedshiftConnection.create_cluster

它有一个选项 start_time 和 end_time 但无法对其进行排序。如何使用 boto 获取最新快照的 ID?

这是我尝试过的,但它似乎没有返回最后的快照。

mysnap=conn.describe_cluster_snapshots()

mysnapidentifier=mysnap['DescribeClusterSnapshotsResponse']['DescribeClusterSnapshotsResult']['Snapshots'][-1]['SnapshotIdentifier'] 

最佳答案

无法在服务器端完成排序,因此您必须在客户端进行排序。首先,从响应数据中提取快照数据列表:

response = conn.describe_cluster_snapshots()
snapshots = response['DescribeClusterSnapshotsResponse']['DescribeClusterSnapshotsResult']['Snapshots']

snapshots 变量现在应该是一个字典列表,其中每个字典代表一个快照。这些词典中的每一个都有一个名为 SnapshotCreateTime 的键,您希望按该值对列表进行排序。你可以这样做:

snapshots.sort(key=lambda d: d['SnapshotCreateTime'])

这会进行就地排序,因此您的列表现在将被修改为所有快照都按该键的升序排列。您现在可以只获取列表中的最后一项:

mysnapidentifier = snapshots[-1]['SnapshotIdentifier']

我不使用 Redshift,所以我没有实时数据来测试它,但我相信它会给你想要的东西。

关于boto - 使用 boto 查找最后一个快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19379987/

相关文章:

sql - 滞后获得自前一个空值以来的第一个非空值

python - 如何连接到 boto 中的现有 CloudSearch 域?

python - S3 boto 列表键有时会返回目录键

boto - 尝试使用 Boto 获取 SQS 消息 ID

amazon-web-services - AWS Datapipeline RedShiftCopyActivity-如何指定 "columns"

amazon-web-services - [XX000][500310] [Amazon](500310) 无效操作 : Parsed manifest is not a valid JSON object

amazon-web-services - Redshift 外部表和 Redshift Spectrum 之间有什么区别

python - S3generate_url 的 KeyError u'\xae'

python - Boto2 文件上传出现 ConnectionResetError

memory - Redshift查询CPU时间