2

我有一个包含 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,}
4

1 回答 1

0

不,您不能用于filter搜索空值,因为 Amazon-API 中也不存在该键。要分析 API 调用和响应,您可以使用以下行:

boto.set_stream_logger('boto')

您将看到响应不包含<vpcId>XML 中的 a。所以boto不能设置,这个安全组对象的值会留在self.vpc_id = None.

之后您应该get_all_security_groups()手动执行和过滤vpc_id == None

于 2014-01-16T12:19:54.797 回答