Редактировать: Как уже упоминалось @jogold, с недавним запуском Query for AWS Systems Manager Store Parameter я бы посоветовал использовать его для прямого запроса из AWS вместо пользовательского сценария в моем ответе.
В соответствии с boto3
документами , нет родной функциональности для описания разговорных названий регионов.
Вот небольшой скрипт с функцией convertRegionCodesToNames()
, который берет список допустимых идентификаторов регионов и преобразует их в их общие имена. При необходимости добавьте обработку ошибок для неверных входных данных, массивов нулевой длины или других возможных ответов, возвращаемых boto3
.
# replace `regions` variable with the output from the get_available_instances() response
regions = ['ap-northeast-1', 'ap-northeast-2', 'ap-south-1', 'ap-southeast-1', 'ap-southeast-2', 'ca-central-1', 'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'sa-east-1', 'us-east-1', 'us-east-2', 'us-west-1', 'us-west-2']
def convertRegionCodesToNames(regions):
# static dict of all region key-value pairs
region_dict = {
"us-east-1": "N. Virginia",
"us-east-2": "Ohio",
"us-west-1": "N. California",
"us-west-2": "Oregon",
"ca-central-1": "Central",
"eu-west-1": "Ireland",
"eu-central-1": "Frankfurt",
"eu-west-2": "London",
"eu-west-3": "Paris",
"eu-north-1": "Stockholm",
"ap-northeast-1": "Tokyo",
"ap-northeast-2": "Seoul",
"ap-southeast-1": "Singapore",
"ap-southeast-2": "Sydney",
"ap-south-1": "Mumbai",
"sa-east-1": "São Paulo",
"us-gov-west-1": "US Gov West 1",
"us-gov-east-1": "US Gov East 1"
}
for i in range(len(regions)):
regions[i] = region_dict[regions[i]]
return regions
converted_regions = convertRegionCodesToNames(regions)
print("regions:", converted_regions)
После добавления команда $ python3 regions.py
выдаст:
regions: ['Tokyo', 'Seoul', 'Mumbai', 'Singapore', 'Sydney', 'Central', 'Frankfurt', 'Ireland', 'London', 'Paris', 'São Paulo', 'N. Virginia', 'Ohio', 'N. California', 'Oregon']