boto us-gov-west-1地区

时间:2013-12-24 13:18:09

标签: python amazon-web-services boto

我尝试使用代码列出帐户中的所有实例:

for region in boto.ec2.regions(**creds):
    print region.name
    ec2_conn = boto.ec2.connect_to_region(region.name, **creds)

    for instance in ec2_conn.get_only_instances():
        print instance

但是在检查区域“us-gov-west-1”时出现错误:

boto.exception.EC2ResponseError:EC2ResponseError:401未经授权 AuthFailure AWS无法验证提供的访问凭据c873c473-c3b1-4be3-b562-b2e73b21e9c2

据我所知,该地区是一些特殊的政府区域,不允许我使用。但是如何忽视呢?我可以将我的循环包装在try ... except中,但可能有一些方法可以获得只有可访问区域的列表吗?

UPD:使用以下代码迭代整个区域时:

ec2_conn = boto.ec2.connection.EC2Connection(**creds)
for region in ec2_conn.get_all_regions():

没有给出“us-gov-west-1”地区。但为什么这种方法会产生不同的结果,何时应该使用?

1 个答案:

答案 0 :(得分:5)

发现它!

boto.ec2.regions()为我们提供了所有现有区域的列表,这些区域在库中是硬编码的,并且

boto.ec2.connection.EC2Connection::get_all_regions()会确实致电DescribeRegions,以获取当前可用的区域列表。

有人说:读源卢克!