Python AWS boto在时间段内获取快照

Python AWS boto在时间段内获取快照,python,amazon-web-services,amazon-ec2,boto,snapshot,Python,Amazon Web Services,Amazon Ec2,Boto,Snapshot,我正在使用AWS,并使用boto(AmazonWeb服务的Python接口)获取快照。我正在使用conn.获取所有快照(),但我只想检索必要的数据。我使用日历查看快照,因此如果我只能在当前查看的月份内提取快照,这将非常有用 我是否可以在连接上设置限制(可能是过滤器)。获取所有快照()仅在一个月内检索快照 以下是必要的boto文档:我不知道有什么方法可以做到这一点。EC2 API允许您根据快照ID或各种过滤器(如状态或进度)过滤结果。甚至还有一个过滤器用于创建时间,但不幸的是,没有办法指定时间范围

我正在使用AWS,并使用boto(AmazonWeb服务的Python接口)获取快照。我正在使用
conn.获取所有快照()
,但我只想检索必要的数据。我使用日历查看快照,因此如果我只能在当前查看的月份内提取快照,这将非常有用

我是否可以在
连接上设置限制(可能是过滤器)。获取所有快照()
仅在一个月内检索快照


以下是必要的boto文档:

我不知道有什么方法可以做到这一点。EC2 API允许您根据快照ID或各种过滤器(如
状态
进度
)过滤结果。甚至还有一个过滤器用于
创建时间
,但不幸的是,没有办法指定时间范围并让它返回介于两者之间的所有内容。并且无法在筛选查询中使用
运算符。

使用快照的
开始时间
字段(这是一个字符串,因此需要对其进行解析):

导入日期时间
#获取所有快照
快照=连接。获取所有快照()
#获取30天前的UTC
截止时间=datetime.datetime.utcnow()-datetime.timedelta(天=30)
#日期时间解析格式“2015-09-07T20:12:08.000Z”
日期格式=“%Y-%m-%dT%H:%m:%S.%fZ”
#过滤旧的
旧的_快照=[s代表快照中的s\
如果datetime.datetime.strtime(s.start\u time,DATEFORMAT)=cutoff]
旧快照
将包含本月之前的快照,
新快照
将包含本月的快照。(我觉得您想删除旧快照,这就是为什么我包括
旧快照
行。)


我使用上面的datetime.strTime()是因为它是内置的,但是如果安装了dateutil,它会更加健壮。(有关详细信息,请参见此:)

这似乎非常必要,特别是因为我不想在后端保存数千个快照。有什么解决方案吗?嗯,您可以始终将时间戳和快照ID存储在DynamoDB或其他一些数据库中,并查询它们以查找要检索的快照ID。好的。我想我会回避的。无论如何,谢谢你的回复。顺便说一句,博托岩石在每一个其他方式。
import datetime

# Fetch all snaps
snaps = conn.get_all_snapshots()
# Get UTC of 30-days ago
cutoff = datetime.datetime.utcnow() - datetime.timedelta(days=30)
# datetime parsing format "2015-09-07T20:12:08.000Z"
DATEFORMAT = '%Y-%m-%dT%H:%M:%S.%fZ'
# filter older
old_snaps = [s for s in snaps \
             if datetime.datetime.strptime(s.start_time, DATEFORMAT) < cutoff]
# filter newer
new_snaps = [s for s in snaps \
             if datetime.datetime.strptime(s.start_time, DATEFORMAT) >= cutoff]