4

以下代码返回一个空列表:

instancelist = list()
instancelist = [x for x in conn.get_all_instances()]

for instance in instancelist:
       print instance.groups

在每种情况下,代码都不会进入 for 循环,您能否提供有关原因的见解?

boto API 应该从 conn.get_all_instances 返回所有预留对象的列表。我能够从同一个连接对象运行/杀死实例就好了。

4

2 回答 2

2

您可以尝试这样做吗:

>>> import boto
>>> boto.set_stream_logger('foo')
>>> conn = boto.connect_ec2(debug=2)
>>> conn.get_all_instances()

看看你的控制台打印了什么?这应该启用对 EC2 服务的请求和响应的完整调试日志记录,因此我们将准确地知道请求的内容和返回的内容。

于 2012-06-06T12:10:16.280 回答
0

我是一个明确的 Python 新手,但我目前使用以下方法遍历所有实例并返回组列表:

import boto

conn = boto.connect_ec2()
all_instances = conn.get_all_instances()

for i in all_instances:
    print i
    for instance in i.instances:
        print instance.groups

我认为您可能遇到的问题是保留作为实例集合返回。

正如我所说,我可能错了,但以上内容对我有用。

于 2012-06-06T13:05:57.433 回答