首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Boto3列出可用区域(Python)

如何使用Boto3列出可用区域(Python)
EN

Stack Overflow用户
提问于 2016-07-19 06:30:15
回答 2查看 33.4K关注 0票数 33

在AWS扩展和添加新区域时,我希望我的代码能够自动检测到这一点。目前,“选择您的区域”是硬编码的,但我只想为RegionName解析以下内容。

代码语言:javascript
复制
import boto3

ec2 = boto3.client('ec2')
regions = ec2.describe_regions()
print(regions)

我的输出是JSON,如下所示:

{“区域”:{'Endpoint':'ec2.ap-south-1.amazonaws.com','RegionName':'ap-south-1'},{'Endpoint':'ec2.eu-west-1.amazonaws.com','RegionName':'eu-west-1'},{'Endpoint':‘ec2.ap-东南-1.amazonaws.com’,'RegionName':‘ap-东南-1’}}

为了空间,我减少了重复数据和ResponseMetadata。

如何将RegionName解析为列表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-19 06:59:27

下面将返回每个区域的RegionName和端点。

代码语言:javascript
复制
# List all regions
client = boto3.client('ec2')
regions = [region['RegionName'] for region in client.describe_regions()['Regions']]
票数 42
EN

Stack Overflow用户

发布于 2016-07-19 16:41:23

除了Frédéric的回答之外,您还可以获得每个服务的已知区域,而无需拨打任何服务电话。不过,我要提醒您,由于这是从botocore的本地模型中提取出来的,而不是触及端点,所以并不总是详尽无遗,因为您需要更新botocore来更新列表。

代码语言:javascript
复制
from boto3.session import Session

s = Session()
dynamodb_regions = s.get_available_regions('dynamodb')

此外,您不限于此列表中的区域。如果您使用的是较早版本的botocore,则仍然可以通过指定它们来使用新的区域。他们就是不会出现在这个名单上。

票数 50
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38451032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档