在AWS扩展和添加新区域时,我希望我的代码能够自动检测到这一点。目前,“选择您的区域”是硬编码的,但我只想为RegionName解析以下内容。
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解析为列表?
发布于 2016-07-19 06:59:27
下面将返回每个区域的RegionName和端点。
# List all regions
client = boto3.client('ec2')
regions = [region['RegionName'] for region in client.describe_regions()['Regions']]发布于 2016-07-19 16:41:23
除了Frédéric的回答之外,您还可以获得每个服务的已知区域,而无需拨打任何服务电话。不过,我要提醒您,由于这是从botocore的本地模型中提取出来的,而不是触及端点,所以并不总是详尽无遗,因为您需要更新botocore来更新列表。
from boto3.session import Session
s = Session()
dynamodb_regions = s.get_available_regions('dynamodb')此外,您不限于此列表中的区域。如果您使用的是较早版本的botocore,则仍然可以通过指定它们来使用新的区域。他们就是不会出现在这个名单上。
https://stackoverflow.com/questions/38451032
复制相似问题