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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |