2015-10-15 94 views
0

我试图使用Python的Boto模块获取我所有的AWS RDS实例的列表。我可以获取实例元数据,然后我读入连接以利用get_all_dbinstances(),但不断获取[]返回。Boto rds.get_all_domsstances返回空列表

from boto.utils import get_instance_metadata 
import boto.rds 

# This works fine  
m = get_instance_metadata() 

access_key = m[****] 
secret_key = m[****] 
security_token = m[****] 

try: 
# And this works fine 
    region_object = boto.rds.connect_to_region("eu-central-1", aws_access_key_id=access_key, aws_secret_access_key=secret_key) 

except ValueError, e: 
    print "Error: {0}".format(e.message) 

rds = boto.connect_rds(aws_access_key_id = access_key, aws_secret_access_key = secret_key, security_token = security_token, region=region_object.region) 
instances = rds.get_all_dbinstances() 
print instances 

>> [] 

回答

2

connect_to_region的调用实际上返回该区域的RDSConnection对象,这样你的代码真的应该是这样的:

rds = boto.rds.connect_to_region('eu-central-1', ...) 
instances = rds.get_all_dbinstances() 

您的原始代码是忽略区域部分刚开到一个连接默认区域(us-east-1),您显然没有运行数据库实例。

+0

谢谢你,原来是地区问题,我在爱尔兰,所以我的地区是欧盟西部1而不是欧盟中心1 –