簡體   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