如何使用boto获取我的EC2镜像状态?

1 投票
1 回答
1356 浏览
提问于 2025-04-18 08:35

在我的代码中,我想从一个AMI(亚马逊机器镜像)创建一张图片,然后检查这张新图片的状态。不过,我在弄清楚这张图片的状态时遇到了困难。以下是我最后尝试的代码:

package_name = "RAY"
promotion_id = "101-234"

print "[....] Package Install Complete"
print "[....] Proceeding to Bake AMI"

imagename = package_name + promotion_id
newimageid = conn.create_image(instance_id=bakeryinstanceid, name=imagename, description="Please Work"  )

print "[....] The new Base AMI ID for ", package_name, "is", newimageid

image_status = newimageid.state

这是我得到的错误信息:

Traceback (most recent call last):
File "./imagecreate.py", line 58, in <module>
image_status = newimageid.state
AttributeError: 'unicode' object has no attribute 'state'

查看我这张新图片状态的最好方法是什么呢?

1 个回答

3

我认为 create_image() 返回的是一个包含图片ID的字符串,而不是一个图片对象。根据你的例子,你应该这样做:

image_status = get_image(newimageid)

image_status.state 应该会包含一个字符串,显示你的图片状态,可能的值有 "pending"(待处理)、"available"(可用)和 "failed"(失败)。

http://boto.readthedocs.org/en/latest/ref/ec2.html#boto.ec2.connection.EC2Connection.get_image http://boto.readthedocs.org/en/latest/ref/ec2.html#boto.ec2.connection.EC2Connection.create_image

撰写回答