以下代码返回一个空列表:
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返回所有预留对象的列表。 我能够从同一个连接对象中运行/终止实例。
答案 0 :(得分:2)
你能尝试这样做吗?
>>> import boto
>>> boto.set_stream_logger('foo')
>>> conn = boto.connect_ec2(debug=2)
>>> conn.get_all_instances()
并查看打印到控制台的内容?这应该启用请求的完整调试日志记录和对EC2服务的响应,这样我们就可以确切地知道要求的内容和返回的内容。
答案 1 :(得分: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
我认为您可能遇到的问题是保留会作为一组实例返回。
正如我所说,我可能错了,但上述情况对我有用。