我是使用 boto 进行 ec2 python 编程的新手。
我使用来自连接对象的request_spot_instances方法请求现场实例。这将返回SpotInstanceRequest对象的列表。
我需要知道我的实例何时运行,所以我想使用instance.update()和instance.state属性等方法。
但是如何将我的请求对象转换为实例对象?
甚至连接对象中的getInstances()方法也返回一个ResultSet对象,而不是一个实例列表。
谢谢您的帮助。
我是使用 boto 进行 ec2 python 编程的新手。
我使用来自连接对象的request_spot_instances方法请求现场实例。这将返回SpotInstanceRequest对象的列表。
我需要知道我的实例何时运行,所以我想使用instance.update()和instance.state属性等方法。
但是如何将我的请求对象转换为实例对象?
甚至连接对象中的getInstances()方法也返回一个ResultSet对象,而不是一个实例列表。
谢谢您的帮助。
在最初使用该方法请求 Spot 实例后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
将是由现场实例请求创建的实例的 ID。要将其转换为 Instance 对象,请执行以下操作:
reservations = conn.get_all_instances(instance_ids=fulfilled[0].instance_id)
instance = reservations[0].instances[0]
该instance
变量现在应该是一个 Instance 对象,表示在您的现场实例请求中创建的实例。