【问题标题】:How can I retrieve more than 50 Autoscaling Groups via Python Boto如何通过 Python Boto 检索超过 50 个自动缩放组
【发布时间】:2015-06-01 18:36:30
【问题描述】:
您好,提前感谢您的帮助...
我正在尝试使用 boto 来检索我帐户中所有自动缩放组的列表。我有 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 组的整个列表有什么想法吗?
【问题讨论】:
标签:
python
amazon-web-services
boto
autoscaling
aws-sdk
【解决方案1】:
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 组。您可能会想出一种更优雅的方式来做到这一点,但这应该可以工作,并为您提供有关如何进行分页的基本信息。