使用Boto确定AWS AMI是否可用

时间:2012-05-03 18:10:08

标签: python amazon-web-services boto

我正在使用Boto创建我的一个EC2盒子的AMI,然后我想用那个AMI旋转更多的盒子,但是run_instances命令咆哮我的AMI还没有。

如何使用boto查询aws以了解我的ami何时准备就绪?

EC2连接支持get_image

的方法

Image没有任何状态属性

4 个答案:

答案 0 :(得分:5)

图片快速dir将我带到Image.state,其值为"pending""available"

答案 1 :(得分:2)

除“待定”和“可用”外,还有“失败”状态。这是可用的全套AMI状态。

答案 2 :(得分:0)

我使用了上述方法,但我花了一点时间才弄明白。不是蟒蛇人,但这就是我所做的。希望它可以帮到某人。

#EC2 Connection
conn = boto.ec2.connect()

image_status = conn.get_all_images(image_ids='ami-XXX')[0]
image_state = image_status.state
print image_state

答案 3 :(得分:0)

我可以使用boto3编写一个简单的函数

from collections import OrderedDict

#based on your updated data structure
d = OrderedDict([('@CASH', '0.00'), ('@INTEREST', '0.00'), ('@BUY', '-233'), ('@RATE', '1.000000'), ('@AVAILABLE', '6,228'), ('@AMT', '0.00')])
xml_response = {}
xml_response['HOLDING_QUERY_RESPONSE'] = d

xml_response
{'HOLDING_QUERY_RESPONSE': OrderedDict([('@CASH', '0.00'),
              ('@INTEREST', '0.00'),
              ('@BUY', '-233'),
              ('@RATE', '1.000000'),
              ('@AVAILABLE', '6,228'),
              ('@AMT', '0.00')])}

info = {key.replace('@',''):value for key, value in xml_response['HOLDING_QUERY_RESPONSE'].items()}
print(info)