boto3 instance.filter 数组
Posted
技术标签:
【中文标题】boto3 instance.filter 数组【英文标题】:boto3 instances.filter array 【发布时间】:2022-01-23 21:03:36 【问题描述】:我正在尝试打印状态检查失败的 EC2 实例列表
当我像这样进行实例过滤时
instances = conn.instances.filter(
Filters=[
'Name': 'instance-id', 'Values': ['i-017357c1c4a1a96f8', 'i-07e399b452c7100c3']
]
)
for instance in instances:
instance_name = get_tag(instance.tags)
print (instance_name, instance.id, instance.instance_type)
我能够打印出实例。
但是当我在数组中进行过滤时,即使 failed_instances() 数组包含以下内容,它也不起作用:['i-017357c1c4a1a96f8', 'i-07e399b452c7100c3']
instances = conn.instances.filter(
Filters=[
'Name': 'instance-id', 'Values': [failed_instances]
]
)
print(failed_instances)
['i-017357c1c4a1a96f8', 'i-07e399b452c7100c3']
有什么想法吗?
OK 做了一些修改,但我无法将其填充到数组中。任何想法?可能是instanceID错了?
instances = conn.instances.filter(
InstanceIds = failed_instances
)
#print(failed_instances)
tag_names = []
for instance in instances:
instance_name = get_tag(instance.tags)
# print (instance_name, instance.id, instance.instance_type)
tag_names.append(i["instance_name"])
print(tag_names)
【问题讨论】:
代码是特定的。您应该具体提出有关它的问题。 “failed_instances() 数组”是什么意思?failed_instances
是返回数组的函数吗? ()
表示函数调用。您说“不起作用”- 没有要包含的错误?
failed_instances 是我从另一个循环中得到的数组
print(failed_instances) 显示 ['i-017357c1c4a1a96f8', 'i-07e399b452c7100c3']
好的,现在可以使用 tag_names.append(instance_name)
【参考方案1】:
从您的代码中并不完全清楚,但听起来failed_instances
已经是一个数组。然后当你说[failed_instances]
时,你把它放到另一个数组中。
相反,你应该写:
instances = conn.instances.filter(
Filters=[
'Name': 'instance-id', 'Values': failed_instances
]
)
【讨论】:
以上是关于boto3 instance.filter 数组的主要内容,如果未能解决你的问题,请参考以下文章