Пример. Использование библиотек Azure для перечисления групп ресурсов и ресурсов

В этом примере показано, как использовать библиотеки управления пакета Azure SDK в скрипте Python для выполнения двух задач:

  • перечисление всех групп ресурсов в подписке Azure;
  • перечисление ресурсов в определенной группе ресурсов.

Все описанные в этой статье команды работают одинаково как в Bash для Linux или macOS, так и в командных оболочках для Windows, если не указано иное.

Эквивалентные команды Azure CLI перечислены далее в этой статье.

1. Настройка локальной среды разработки

Если вы еще не сделали этого, настройте среду, в которой можно запустить этот код. Ниже приведено несколько вариантов:

2. Установка пакетов библиотек Azure

Создайте файл requirements.txt со следующим содержимым.

azure-mgmt-resource
azure-identity

В окне терминала или в командной строке с активированной виртуальной средой установите необходимые компоненты.

pip install -r requirements.txt

3. Написание кода для работы с группами ресурсов

3а. Перечисление групп ресурсов в подписке

Создайте файл Python с именем list_groups.py со следующим кодом. Подробные объяснения даны в комментариях:

# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os

# Acquire a credential object.
credential = DefaultAzureCredential()

# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)

# Retrieve the list of resource groups
group_list = resource_client.resource_groups.list()

# Show the groups in formatted output
column_width = 40

print("Resource Group".ljust(column_width) + "Location")
print("-" * (column_width * 2))

for group in list(group_list):
    print(f"{group.name:<{column_width}}{group.location}")

3б. Перечисление ресурсов в определенной группе ресурсов

Создайте файл Python с именем list_resources.py со следующим кодом. Подробные объяснения даны в комментариях.

По умолчанию код перечисляет ресурсы в myResourceGroup. Чтобы использовать другую группу ресурсов, укажите имя нужной группы в переменной среды RESOURCE_GROUP_NAME.

# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os

# Acquire a credential object.
credential = DefaultAzureCredential()

# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

# Retrieve the resource group to use, defaulting to "myResourceGroup".
resource_group = os.getenv("RESOURCE_GROUP_NAME", "myResourceGroup")

# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)

# Retrieve the list of resources in "myResourceGroup" (change to any name desired).
# The expand argument includes additional properties in the output.
resource_list = resource_client.resources.list_by_resource_group(
    resource_group, expand = "createdTime,changedTime")

# Show the groups in formatted output
column_width = 36

print("Resource".ljust(column_width) + "Type".ljust(column_width)
    + "Create date".ljust(column_width) + "Change date".ljust(column_width))
print("-" * (column_width * 4))

for resource in list(resource_list):
    print(f"{resource.name:<{column_width}}{resource.type:<{column_width}}"
       f"{str(resource.created_time):<{column_width}}{str(resource.changed_time):<{column_width}}")

Проверка подлинности в коде

Далее в этой статье вы войдите в Azure с помощью Azure CLI, чтобы запустить пример кода. Если у вашей учетной записи есть разрешения на создание и перечисление групп ресурсов в подписке Azure, код будет успешно запущен.

Чтобы использовать такой код в рабочем скрипте, можно задать переменные среды для использования метода на основе субъекта-службы для проверки подлинности. Дополнительные сведения см. в статье "Проверка подлинности приложений Python с помощью служб Azure". Необходимо убедиться, что субъект-служба имеет достаточные разрешения для создания и перечисления групп ресурсов в подписке, назначив ей соответствующую роль в Azure, например роль участника в подписке.

4. Запуск скриптов

  1. Если вы еще не сделали этого, войдите в Azure с помощью Azure CLI:

    az login
    
  2. Задайте для переменной AZURE_SUBSCRIPTION_ID среды идентификатор подписки. (Вы можете запустить команду az account show и получить идентификатор подписки из id свойства в выходных данных):

    set AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Перечислите все группы ресурсов в подписке:

    python list_groups.py
    
  4. Перечислите все ресурсов в группе ресурсов:

    python list_resources.py
    

    По умолчанию код перечисляет ресурсы в myResourceGroup. Чтобы использовать другую группу ресурсов, укажите имя нужной группы в переменной среды RESOURCE_GROUP_NAME.

Для справки: аналогичные команды Azure CLI

Следующая команда Azure CLI содержит группы ресурсов в подписке:

az group list

Следующая команда перечисляет ресурсы в myResourceGroup в центральном регионе ( location аргумент необходим для определения определенного центра обработки данных):

az resource list --resource-group myResourceGroup --location centralus

См. также