如何通过Python Boto检索超过50个自动缩放组

时间:2015-03-28 13:06:44

标签: python amazon-web-services boto autoscaling aws-sdk

您好,并提前感谢任何帮助...

我正在尝试使用boto检索帐户中所有Autoscaling组的列表。我有164个自动缩放组,但是boto脚本只是以与控制台类似的方式检索前50个。

    #!/usr/bin/python

    from boto.ec2.autoscale import AutoScaleConnection
    conn = AutoScaleConnection('ABCDEFGHIJKLMNOPQRS', 'TUVWXYZ/ABCDEFGHIJKLMN')

    agroups = conn.get_all_groups()
    print agroups

关于如何提取AS组的整个列表的任何想法?

1 个答案:

答案 0 :(得分:2)

Boto不会像对待许多其他调用那样自动处理DescribeAutoScalingGroups API调用的结果分页。所以你必须自己处理分页。

import boto.ec2.autoscale
c = boto.ec2.autoscale.connect_to_region('us-east-1')  # or whatever region you want
all_groups = []
rs = c.get_all_groups()
all_groups.extend(rs)
while rs.next_token:
    rs = c.get_all_groups(next_token=rs.next_token)
    all_groups.extend(rs)

在循环结束时,all_groups应包含所有AutoScaling组。您可以提出一种更优雅的方式来做到这一点,但这应该有效,并为您提供有关如何进行分页的基本信息。