2013-05-06 52 views
2

我有一個包含VPC和非VPC的環境。過濾vpc_id值無

可正常工作

filters={ 'vpc_id': 'vpc-xxxxxxxx',} 
groups = conn.get_ec2().get_all_security_groups(filters=filters) 

我找回所有的安全組指定的VPC。但是,非VPC/EC2安全組將vpc_id設置爲無。

是否有使用過濾器列出所有設置爲None或未設置爲vpc-xxxxxxxx的安全組?

以下示例不會產生任何結果,也不會產生錯誤。

filters={ 'vpc_id': None,} 
filters={ 'vpc_id': 'None',} 
filters={ 'vpc_id': '',} 
filters={ 'vpc_id': False,} 

回答

0

不,你不能用filter搜索空值,因爲還重點不會在亞馬遜API存在。爲了分析API調用和響應,你可以使用下面的行:

boto.set_stream_logger('boto') 

你會看到,響應不包含XML一個<vpcId>。因此boto無法設置它,並且此安全組對象的值將保留在self.vpc_id = None中。

之後您應該執行get_all_security_groups()並手動過濾vpc_id == None