【问题标题】:Filter for a vpc_id value of None过滤 vpc_id 值为 None
【发布时间】:2014-01-16 20:19:54
【问题描述】:

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

【问题讨论】:

    标签: python boto


    【解决方案1】:

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

    boto.set_stream_logger('boto')
    

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

    你应该做一个get_all_security_groups(),然后手动过滤vpc_id == None。

    【讨论】:

      猜你喜欢
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      • 2017-10-07
      • 2013-04-27
      相关资源
      最近更新 更多