Есть ли API для перечисления всех регионов Azure?
Я хотел бы перечислить все местоположения Azure через некоторый API (мне нужно создать несколько файлов конфигурации для каждого региона и использовать точное наименование, которое Azure делает, чтобы избежать опечаток). Я нашел этот вопрос, но в нем перечислены только те регионы, которым разрешено использовать определенную подписку.
Я хочу перечислить все регионы, которые существуют, независимо от того, имеет ли моя подписка доступ или нет.
7 ответов
Get-AzureRMLocation
предоставит вам список местоположений для вашей учетной записи / арендатора / подписки, с которыми вы работаете.
az account list-locations -o table
даст вам стол, как:
DisplayName Latitude Longitude Name
------------------- ---------- ----------- ------------------
East Asia 22.267 114.188 eastasia
Southeast Asia 1.283 103.833 southeastasia
Central US 41.5908 -93.6208 centralus
East US 37.3719 -79.8164 eastus
East US 2 36.6681 -78.3889 eastus2
West US 37.783 -122.417 westus
North Central US 41.8819 -87.6278 northcentralus
South Central US 29.4167 -98.5 southcentralus
North Europe 53.3478 -6.2597 northeurope
West Europe 52.3667 4.9 westeurope
Japan West 34.6939 135.5022 japanwest
Japan East 35.68 139.77 japaneast
Brazil South -23.55 -46.633 brazilsouth
Australia East -33.86 151.2094 australiaeast
Australia Southeast -37.8136 144.9631 australiasoutheast
South India 12.9822 80.1636 southindia
Central India 18.5822 73.9197 centralindia
West India 19.088 72.868 westindia
Canada Central 43.653 -79.383 canadacentral
Canada East 46.817 -71.217 canadaeast
UK South 50.941 -0.799 uksouth
UK West 53.427 -3.084 ukwest
West Central US 40.890 -110.234 westcentralus
West US 2 47.233 -119.852 westus2
Korea Central 37.5665 126.9780 koreacentral
Korea South 35.1796 129.0756 koreasouth
France Central 46.3772 2.3730 francecentral
France South 43.8345 2.1972 francesouth
Australia Central -35.3075 149.1244 australiacentral
Australia Central 2 -35.3075 149.1244 australiacentral2
South Africa North -25.731340 28.218370 southafricanorth
South Africa West -34.075691 18.843266 southafricawest
Это старый вопрос, на который уже есть принятый ответ. Но учитывая, что в модули Azure было внесено несколько изменений, поэтому здесь добавлена последняя команда.
Я не думаю, что API для определения местоположения все еще существует. Но с последней версией модуля Powershell Az вы можете получать местоположения
Get-AzLocation | select DisplayName, Location | Format-Table
Это дает вам некоторую свободу выбора необходимого свойства и форматирования вывода в табличном формате. Команда AZ CLI остается такой же, как указано выше.
Я нашел способ сделать это здесь:
На момент написания этой статьи на странице состояния Azure перечислены виртуальные машины как доступные везде. Итак, я запустил команду Azure PowerShell:
Login-AzureRmAccount
Get-AzureRmResourceProvider -ProviderNamespace Microsoft.Compute
$resources.ResourceTypes.Where{($_.ResourceTypeName -eq 'virtualMachines')}.Locations
Примечание. Это НЕ перечисляет регионы в Azure National Clouds; (Обратите внимание, что страница состояния Azure включает в себя 2 региона Германии, но не другие области национального облака). Когда я запустил это, API возвратил 26 общедоступных областей публичного облака (см. Ниже). Я вручную сопоставил это со списком регионов Azure, и это правильно на момент написания статьи.
East US
East US 2
West US
Central US
North Central US
South Central US
North Europe
West Europe
East Asia
Southeast Asia
Japan East
Japan West
Australia East
Australia Southeast
Brazil South
South India
Central India
West India
Canada Central
Canada East
West US 2
West Central US
UK South
UK West
Korea Central
Korea South
Я предполагаю, что если вы запустили вышеописанное с учетной записью Azure в Германии, вы увидите регионы Германии.
Возможным решением с использованием сценария powershell было бы проанализировать ответ с URL-адреса: https://azure.microsoft.com/en-us/regions/. Используя это, вы можете получить информацию о недавно объявленных регионах.
Если вы не против использования Java или C#, то нижеприведенные решения также удобны.
Для списка регионов в java зависимость в maven - это azure-mgmt-resources, расположенный по адресу https://github.com/Azure/azure-libraries-for-java/tree/master/azure-mgmt-resources. Документация: https://azure.github.io/azure-sdk-for-java/com/microsoft/azure/management/resources/fluentcore/arm/Region.html
В случае, если вы используете C#, зависимость в nuget - это Microsoft.Azure.Management.ResourceManager.Fluent. И для справки, URL исходного кода: https://github.com/Azure/azure-libraries-for-net/blob/master/src/ResourceManagement/ResourceManager/Region.cs
Я искал способ получить регионы Azure без аутентификации в Azure и наткнулся на этот поток. Как и в ответе @girip11, я опирался на общедоступную документацию Azure. Это скрипт Python для получения данных:
import requests
import pandas as pd
from re import search
def list_azure_regions():
url = 'https://azure.microsoft.com/en-us/explore/global-infrastructure/geographies/'
html = requests.get(url).content
df_list = pd.read_html(html)
regions_list = []
locations_list = []
for df in df_list:
for dc in list(df):
if search('Regions', dc):
pass
else:
if search('Coming soon', dc):
state = 'planned'
else:
state = 'active'
location = df[dc][0]
region = dc.removesuffix(' Start free')
region = region.removesuffix(' Get started')
region = region.removesuffix(' Coming soon')
if region in regions_list:
pass
else:
regions_list.append(region)
locations_list.append(
dict({
'display_name': region,
'name': region.replace(' ','').lower(),
'location': location,
'state': state
})
)
return locations_list
azure_regions = list_azure_regions()
print(azure_regions)
Скрипт возвращает ответ типа<class 'list'>
но при необходимости его можно преобразовать во что-то более читаемое. IE при работе в Windows:
> python .\get-azure-regions.py | ConvertFrom-Json
display_name name location state
------------ ---- -------- -----
East Asia eastasia Hong Kong active
Southeast Asia southeastasia Singapore active
Australia Central australiacentral Canberra active
Australia East australiaeast New South Wales active
Australia Southeast australiasoutheast Victoria active
China East chinaeast Shanghai active
China East 2 chinaeast2 Shanghai active
China North chinanorth Beijing active
China North 2 chinanorth2 Beijing active
China North 3 chinanorth3 Hebei active
Central India centralindia Pune active
India South Central indiasouthcentral Hyderabad active
South India southindia Chennai active
Indonesia Central indonesiacentral Jakarta planned
Japan East japaneast Tokyo, Saitama active
Japan West japanwest Osaka active
Korea Central koreacentral Seoul active
Malaysia West malaysiawest Kuala Lumpur planned
New Zealand North newzealandnorth Auckland planned
Taiwan North taiwannorth Taipei planned
Austria East austriaeast Vienna planned
Belgium Central belgiumcentral Brussels active
...
Вы можете использовать следующий REST API:https://management.azure.com/subscriptions/**YOUR_SUBSCRIPTION_ID**/providers?api-version=2020-10-01
ВИДЕТЬ:
- https://docs.microsoft.com/en-us/rest/api/resources/providers/list
- https://docs.microsoft.com/en-us/rest/api/resources/providers/listattenantscope
Но, как и PowerShell и командная строка AZ, здесь отображаются только регионы центра обработки данных, доступные для указанной подписки.