Как составить список регионов AWS EC2 с помощью libcloud
Есть ли способ получить список всех регионов, доступных на AWS через libcloud?
С powershell AWS SDK я могу использовать:
$regions = @(Get-AWSRegion)
foreach ($region in $regions)
{
$region.Region
}
Как я могу сделать то же самое с Python и libcloud?
Большое спасибо, Джонни
2 ответа
Попробуй это. Грубый способ получения регионов AWS:
from libcloud.compute.types import Provider
aws_regions = []
for kw,reg in Provider.__dict__.iteritems():
if 'EC2' in kw and reg not in aws_regions:
aws_regions.append(reg)
print aws_regions
Мы можем использовать get_driver()
функция на Provider.EC2
объект. list_regions()
Метод выдаст вам список допустимых значений для передачи при подключении к региону. list_regions
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver
driver = get_driver(Provider.EC2)
driver.list_regions()
['ap-northeast-1', 'ap-northeast-2', 'ap-northeast-3', 'ap-south-1', 'ap-southeast-1', 'ap-southeast-2', 'ca-central-1', 'cn-north-1', 'cn-northwest-1', 'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'sa-east-1', 'us-east-1', 'us-east-2', 'us-gov-west-1', 'us-west-1', 'us-west-2']
Мы можем использовать libcloud API list_regions()
(Pdb) import libcloud
(Pdb) p libcloud.__version__
'1.5.0'
(Pdb) p driver.list_regions()
['ap-northeast-2', 'us-east-2', 'ap-southeast-1', 'ap-southeast-2', 'ap-south-1', 'eu-west-1', 'sa-east-1', 'us-east-1', 'us-west-2', 'us-gov-west-1', 'us-west-1', 'eu-central-1', 'ap-northeast-1']