我使用的是AWS python API(boto3)。我的脚本启动几个实例,然后等待它们联机,然后再继续执行操作。我希望在预定义的时间段之后等待超时,但是在Python中找不到任何API。有什么想法吗?我当前的代码片段:
def waitForInstance(id):
runningWaiter = self.ec2c.get_waiter("instance_status_ok")
runningWaiter.wait(InstanceIds = [id])
instance = ec2resource.Instance(id)
return instance.state
我当然可以做一些事情,比如在一个单独的线程中运行这段代码,并在需要时终止它,但是我想知道boto3中是否已经有一个内置的API来实现这一点,我只是错过了它。在
你可以在代码中加入一个睡眠计时器。睡眠x分钟,检查是否完成,否则返回睡眠。尝试了y次之后,采取某种排序操作。在
服务员有一个与其相关联的配置,可以通过以下方式访问(使用上面的示例):
此配置中的一个设置是
^{pr2}$max_attempts
,它控制放弃前尝试的次数。默认值为40。可以这样更改该值:这并不是像你问的那样直接控制超时,而是会导致服务员提前放弃。在
为什么不不时检查实例状态呢?在
参考文献:http://boto3.readthedocs.org/en/latest/guide/migrationec2.html
顺便说一句,最好对所有具有标准命名约定的实例使用标记命名。使用原始ID查询任何aws资源都是一个维护噩梦。在
相关问题 更多 >
编程相关推荐