![](/img/trans.png)
[英]Aggregated instance list from all regions of AWS using Boto3 Python library
[英]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.