繁体   English   中英

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

[英]How to list available regions with Boto3 (Python)

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

import boto3

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

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

{'Regions':[{'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-southeast-1.amazonaws.com','RegionName':'ap-southeast-1' }]}

为了空间,我已经删除了重复数据和ResponseMetadata。

如何将RegionName解析为列表?

除了Frédéric的答案,您还可以在不进行任何服务呼叫的情况下获取每项服务的已知区域。 但是,我会提醒您,因为这是从botocore的本地模型中提取而不是命中端点,所以它并不总是详尽无遗,因为您需要更新botocore来更新列表。

from boto3.session import Session

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

此外,您不限于此列表中的区域。 如果您使用的是旧版本的botocore,则仍可以通过指定它们来使用新区域。 它们不会出现在此列表中。

以下内容将返回每个区域的RegionName和Endpoint。

# List all regions
client = boto3.client('ec2')
regions = [region['RegionName'] for region in client.describe_regions()['Regions']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM