我使用anaconda python 2.7生成了一个有效的boto3实例过滤器。我需要将IP地址和实例名称分配给列表以供进一步处理。
代码如下所示:
for instance in instances:
print(instance.id, instance.instance_type, instance.key_name, instance.private_ip_address, instance.public_dns_name ,instance.tags[0].get("Value"))
tagged = ec2.instances.filter(Filters=[{'Name': 'tag:My', 'Values': ['tag']}])
for instance in tagged:
print(name, instance.id, instance.private_ip_address)
object_list={}
object_list['requests']=[]
for instance in tagged:
tagged.collections.OrderedDict()
tagged['ip-address'] = instance.private_ip_address
tagged['machine'] = name
tagged['roles'] = ['tagged',instance.id,name]
object_list['requests'].append(tagged)
这是错误:
AttributeError: 'ec2.instancesCollection' object has no attribute 'collections'
思想?
答案 0 :(得分:0)
这不存在,但您有一个神秘的错误,因为您正在重复使用tagged
变量,ec2.instancesCollection
tagged.collections.OrderedDict()
(无论如何都不会做任何事,因为它没有受到影响)
你(可能)想要/想要:
tagged = collections.OrderedDict()
但这没有意义,因为你已经在tagged
上进行了迭代。
您必须声明另一个变量
for instance in tagged:
t = collections.OrderedDict()
t['ip-address'] = instance.private_ip_address
t['machine'] = name
t['roles'] = ['tagged',instance.id,name]
object_list['requests'].append(t)