python - Listar instancias en el grupo de escalado automático con boto
amazon-web-services autoscaling (1)
Quiero enumerar todas las instancias que se están ejecutando actualmente dentro de un grupo de escalado automático. ¿Se puede lograr eso con boto?
Debe haber alguna relación entre el ASG y las instancias, ya que boto tiene el método shutdown_instances
dentro de la clase boto.ec2.autoscale.group.AutoScalingGroup
.
¡Cualquier indicador en la dirección correcta es muy apreciado!
Algo como esto debería funcionar:
>>> 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]
El motivo por el que tenemos que recopilar los ID de instancia y luego llamar a EC2 es que AutoScale solo almacena un pequeño subconjunto de información sobre las instancias. Esto daría como resultado las instancias variables que apuntan a una lista de objetos de instancia para cada instancia en el grupo de autoescala "mygroupname".