ec2等待实例超时[Python]

2024-09-27 18:18:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是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来实现这一点,我只是错过了它。在


Tags: 实例instance代码self脚本awsapiid
3条回答

你可以在代码中加入一个睡眠计时器。睡眠x分钟,检查是否完成,否则返回睡眠。尝试了y次之后,采取某种排序操作。在

服务员有一个与其相关联的配置,可以通过以下方式访问(使用上面的示例):

runningWaiter.config

此配置中的一个设置是max_attempts,它控制放弃前尝试的次数。默认值为40。可以这样更改该值:

^{pr2}$

这并不是像你问的那样直接控制超时,而是会导致服务员提前放弃。在

为什么不不时检查实例状态呢?在

#code copy from boto3 doc 
for status in ec2.meta.client.describe_instance_status()['InstanceStatuses']:
  print(status)

参考文献:http://boto3.readthedocs.org/en/latest/guide/migrationec2.html

顺便说一句,最好对所有具有标准命名约定的实例使用标记命名。使用原始ID查询任何aws资源都是一个维护噩梦。在

相关问题 更多 >

    热门问题