我的环境包括VPC和非VPC。
这可以按预期工作
filters={ 'vpc_id': 'vpc-xxxxxxxx',}
groups = conn.get_ec2().get_all_security_groups(filters=filters)
我找回指定vpc的所有安全组。但是,非VPC / EC2安全组将vpc_id设置为None。
是否有使用过滤器列出所有设置为None或未设置为vpc-xxxxxxxx的安全组?
以下示例不会产生结果,也不会产生错误。
filters={ 'vpc_id': None,}
filters={ 'vpc_id': 'None',}
filters={ 'vpc_id': '',}
filters={ 'vpc_id': False,}
答案 0 :(得分:0)
不,您不能使用filter
来搜索空值,因为Amazon-API上也不存在密钥。要分析API调用和响应,您可以使用以下行:
boto.set_stream_logger('boto')
您将看到响应在XML中不包含<vpcId>
。因此,boto无法设置它,此安全组对象的值将保留在self.vpc_id = None
。
您之后应该get_all_security_groups()
并手动过滤vpc_id == None
。