2013-05-06 2 views
2

VPC 및 비 VPC가 포함 된 환경이 있습니다. vpc_id 값으로 None 필터를 사용합니다.

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

아니, 당신은 또한 키가 아마존-API에 존재하지 않기 때문에, 빈 값을 검색 filter을 사용할 수 없습니다. API 호출을 분석하고 응답 다음 줄을 사용할 수 있습니다

boto.set_stream_logger('boto') 

당신은 응답이 XML에 <vpcId>를 포함하지 않는 것을 볼 수 있습니다. 그래서 boto는 그것을 설정할 수 없으며이 보안 그룹 개체의 값은 self.vpc_id = None에 머무를 것입니다.

나중에 get_all_security_groups()을 수행하고 vpc_id == None에 대해 수동으로 필터링해야합니다.