2012-09-25 22 views
7

Tôi muốn liệt kê tất cả các phiên bản hiện đang chạy trong một nhóm tỷ lệ tự động. Điều đó có thể được thực hiện với boto?Các trường hợp danh sách trong nhóm chia tỷ lệ tự động với boto

Phải có một số mối quan hệ giữa ASG và các trường hợp dưới dạng boto có phương thức shutdown_instances trong lớp boto.ec2.autoscale.group.AutoScalingGroup.

Bất kỳ con trỏ nào đi đúng hướng đều được đánh giá cao!

+0

Dành cho người dùng boto3 - https://boto3.readthedocs.org/en/latest/reference/services/autoscaling.html –

Trả lời

10

Something như thế này nên làm việc:

>>> 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] 

Lý do chúng ta phải thu thập ID của Instance và sau đó gọi EC2 là AutoScale chỉ lưu trữ một nhóm nhỏ các thông tin về các trường hợp. Điều này sẽ dẫn đến các cá thể biến trỏ đến một danh sách các đối tượng Instance cho mỗi cá thể trong nhóm tự động "mygroupname".

+0

Cảm ơn gaarnat! Chỉ cần những gì tôi đã tìm kiếm –

+2

'instance_ids = [i.id cho i trong group.instances]' nên là 'instance_ids = [i.instance_id cho i trong group.instances]' – mblakele

+0

Tôi đã viết một kịch bản đầy đủ dựa trên đoạn mã này tại http://stackoverflow.com/a/22544230/20774 –

Các vấn đề liên quan