Как составить список регионов 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']
Другие вопросы по тегам