如何限制amazon boto中get_all_images的输出?

sam*_*yap 3 python amazon-ec2 boto

我尝试使用Python boto库加载AWS图像列表.我的代码看起来像这样:

con = boto.connect_ec2(user, pasw)
images_list = con.get_all_images()
Run Code Online (Sandbox Code Playgroud)

如何仅从函数中获得前10个结果get_all_images()

我正在寻找类似的东西con.get_all_images(maxresult=10).

Rad*_*mko 7

正如您可以从boto文档中 找到的那样,您不能直接限制该函数返回的图像数量.它缺乏API支持(参见下面的链接),这不完全是boto的问题.

过滤

filters如果要根据这些图像的某些特定属性限制结果,可以传递参数.

filters(dict) - 可用于限制返回结果的可选过滤器.过滤器以字典的形式提供,包括过滤器名称作为键,过滤器值作为值.允许的过滤器名称/值集取决于正在执行的请求.有关详细信息,请查看EC2 API指南.

例如

c.get_all_images(filters={'architecture': 'x86_64'})
Run Code Online (Sandbox Code Playgroud)

可以在AWS文档中找到支持的属性.

限制

该函数返回一个列表,所以如果你真的需要限制结果的数量,我会这样做:

images = con.get_all_images()[:10]
Run Code Online (Sandbox Code Playgroud)

注意事项

请注意,API不保证任何特定订单(至少没有记录),因此您的前10张图片可能会有所不同.

如果你有太多的图像,它可能也会占用内存,所以如果可以的话,我真的建议用一些属性来过滤它.