过滤vpc_id值为None

时间:2013-05-06 18:23:51

标签: python boto

我的环境包括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,}

1 个答案:

答案 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