使用 boto 列出 Auto Scaling 组中的实例

Posted

技术标签:

【中文标题】使用 boto 列出 Auto Scaling 组中的实例【英文标题】:List instances in auto scaling group with boto 【发布时间】:2012-09-17 10:11:42 【问题描述】:

我想列出当前在 Auto Scaling 组中运行的所有实例。用boto能做到吗?

ASG 和实例之间一定存在某种关系,因为 boto 在 boto.ec2.autoscale.group.AutoScalingGroup 类中具有 shutdown_instances 方法。

高度赞赏任何正确方向的指针!

【问题讨论】:

对于 boto3 用户 - boto3.readthedocs.org/en/latest/reference/services/… 【参考方案1】:

这样的事情应该可以工作:

>>> import boto
>>> autoscale = boto.connect_autoscale()
>>> ec2 = boto.connect_ec2()
>>> group = autoscale.get_all_groups(['mygroupname'])[0]
>>> instance_ids = [i.instance_id for i in group.instances]
>>> reservations = ec2.get_all_instances(instance_ids)
>>> instances = [i for r in reservations for i in r.instances]

我们必须收集实例 ID 然后调用 EC2 的原因是 AutoScale 仅存储有关实例的一小部分信息。这将导致变量实例指向自动缩放组“mygroupname”中每个实例的实例对象列表。

【讨论】:

谢谢你!正是我正在寻找的东西 instance_ids = [i.id for i in group.instances] 应该是instance_ids = [i.instance_id for i in group.instances] 我在***.com/a/22544230/20774写了一个基于这个sn-p的完整脚本

以上是关于使用 boto 列出 Auto Scaling 组中的实例的主要内容,如果未能解决你的问题,请参考以下文章

如何使用扩展策略和指标通过 boto 配置 Auto Scaling?

如何获取 Auto Scaling 组中实例的 IP

Amazon EC2 Auto Scaling CPU 利用率警报 - 数据不足

使用多个目标组配置 Auto Scaling

Auto-Scaling 组不会在启动配置更改时更新

使用 Auto Scaling 组、CloudFormation 和 CodeDeploy 的蓝/绿部署