加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python boto ec2 – 我如何等待图像创建或失败

发布时间:2020-12-20 11:38:13 所属栏目:Python 来源:网络整理
导读:我正在编写一个代码来迭代所有可用的实例并为它们创建一个AMI,如下所示: for reservation in reservations: ...... ami_id = ec2_conn.create_image(instance.id,ami_name,description=ami_desc,no_reboot=True) 但是,在继续创建下一个图像之前,我该如何等
我正在编写一个代码来迭代所有可用的实例并为它们创建一个AMI,如下所示:

for reservation in reservations:
    ......
    ami_id = ec2_conn.create_image(instance.id,ami_name,description=ami_desc,no_reboot=True)

但是,在继续创建下一个图像之前,我该如何等待图像创建?因为我需要跟踪每个创建的ami的状态.

我知道我可以使用以下方法检索状态:

image_status = get_image(ami_id).state

那么,我是否遍历创建的ami_ids列表,然后为每个列表获取状态?如果是这样,那么当我读取图像的状态时,如果图像仍处于未决状态怎么办?如何确定图像创建最终是否失败?

谢谢.

解决方法

如果我理解正确,您希望启动create_image调用,然后等待服务器端操作完成后再继续.为此,您必须定期轮询EC2服务,直到图像的状态可用(意味着它成功)或失败(意味着它失败).代码看起来像这样:

import time
...
image_id = ec2_conn.create_image(instance.id,...)
image = ec2_conn.get_all_images(image_ids=[image_id])[0]
while image.state == 'pending':
    time.sleep(5)
    image.update()
if image.state == 'available':
    # success,do something here
else:
    # handle failure here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读