Sha*_*awn 17 python amazon-web-services boto3
随着AWS扩展并添加新区域,我希望我的代码能够自动检测到这一点.目前,"选择您的区域"是硬编码的,但我想解析以下只为RegionName.
import boto3
ec2 = boto3.client('ec2')
regions = ec2.describe_regions()
print(regions)
Run Code Online (Sandbox Code Playgroud)
我的输出是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解析为列表?
Jor*_*ips 32
除了Frédéric的答案,您还可以在不进行任何服务呼叫的情况下获取每项服务的已知区域.我会提醒你的,但是,因为这是从botocore的本土车型拉动,而不是打一个端点,它不会永远是详尽的,因为你需要更新botocore更新列表.
from boto3.session import Session
s = Session()
dynamodb_regions = s.get_available_regions('dynamodb')
Run Code Online (Sandbox Code Playgroud)
此外,您不限于此列表中的区域.如果您使用的是旧版本的botocore,则仍可以通过指定它们来使用新区域.它们不会出现在此列表中.
Fré*_*nri 24
以下内容将返回每个区域的RegionName和Endpoint.
# List all regions
client = boto3.client('ec2')
regions = [region['RegionName'] for region in client.describe_regions()['Regions']]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14327 次 |
| 最近记录: |