2013-11-07 4 views
0

Я новичок в программировании на e2 python, используя boto.SpotInstanceRequest to Instance object?

Я запрашиваю выборочные экземпляры методом request_spot_instances из объекта соединения. Это вернет список SpotInstanceRequest объектов.

мне нужно знать, когда мои экземпляры работают, поэтому я хотел бы использовать методы как instance.update() и instance.state атрибут.

Но как я могу преобразовать объект запроса в объекты экземпляров?

Даже getInstances() метода от объекта соединений возвращает ResultSet объекта, а не список экземпляров.

Благодарим за помощь.

ответ

2

После первоначального запроса экземпляров пятен с использованием метода request_spot_instances, вам необходимо затем следить за ходом вашего запроса, периодически звонив get_all_spot_instance_requests, чтобы узнать, выполнен ли ваш запрос. Например, этот звонок:

import boto.ec2 
conn = boto.ec2.connect_to_region('us-west-2') 
fulfilled = conn.get_all_spot_instance_requests(filters={'status-code': 'fulfilled'}) 

Вернул бы список запросов экземпляра места, который был выполнен. Каждый из объектов SpotInstanceRequest в этом списке будет иметь атрибут instance_id, который будет идентификатором экземпляра, созданного запросом экземпляра пятна. Для того, чтобы превратить это в объект Instance, сделать что-то вроде этого: Теперь

reservations = conn.get_all_instances(instance_ids=fulfilled[0].instance_id) 
instance = reservations[0].instances[0] 

Переменная instance должна быть объектом Instance, представляющий экземпляр, созданный в запросах экземпляра пятна.

+0

Этот код кажется устаревшим. Не могли бы вы обновить его с помощью boto3? Благодаря! –