Пример. Использование библиотек Azure для перечисления групп ресурсов и ресурсов
В этом примере показано, как использовать библиотеки управления пакета Azure SDK в скрипте Python для выполнения двух задач:
- перечисление всех групп ресурсов в подписке Azure;
- перечисление ресурсов в определенной группе ресурсов.
Все описанные в этой статье команды работают одинаково как в Bash для Linux или macOS, так и в командных оболочках для Windows, если не указано иное.
Эквивалентные команды Azure CLI перечислены далее в этой статье.
1. Настройка локальной среды разработки
Если вы еще не сделали этого, настройте среду, в которой можно запустить этот код. Ниже приведено несколько вариантов:
Настройте виртуальную среду Python с помощью
venv
или выбранного средства. Вы можете создать виртуальную среду локально или в Azure Cloud Shell и запустить код там. Обязательно активируйте виртуальную среду, чтобы начать использовать ее.Используйте среду conda.
Используйте контейнер разработки в Visual Studio Code или GitHub Codespaces.
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. Запуск скриптов
Если вы еще не сделали этого, войдите в Azure с помощью Azure CLI:
az login
Задайте для переменной
AZURE_SUBSCRIPTION_ID
среды идентификатор подписки. (Вы можете запустить команду az account show и получить идентификатор подписки изid
свойства в выходных данных):Перечислите все группы ресурсов в подписке:
python list_groups.py
Перечислите все ресурсов в группе ресурсов:
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
См. также
- Пример. Подготовка группы ресурсов
- Пример: подготовка служба хранилища Azure
- Пример. Использование служба хранилища Azure
- Пример. Подготовка веб-приложения и развертывание кода
- Пример. Подготовка и запрос базы данных
- Пример. Подготовка виртуальной машины
- Использование Управляемых дисков Azure с виртуальными машинами
- Пройдите короткий опрос об Azure SDK для Python