Пример. Создание группы ресурсов с помощью библиотек Azure
В этом примере показано, как использовать библиотеки управления azure SDK в скрипте Python для создания группы ресурсов. (The Эквивалентная команда Azure CLI приведена далее в этой статье. Если вы предпочитаете использовать портал Azure, см. статью "Создание групп ресурсов".)
Все описанные в этой статье команды работают одинаково как в Bash для Linux или macOS, так и в командных оболочках для Windows, если не указано иное.
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. Написание кода для создания группы ресурсов
Создайте файл Python с именем provision_rg.py с приведенным ниже содержимым. Подробные объяснения даны в комментариях:
# Import the needed credential and management objects from the libraries.
import os
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
# Acquire a credential object using DevaultAzureCredential.
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)
# Provision the resource group.
rg_result = resource_client.resource_groups.create_or_update(
"PythonAzureExample-rg", {"location": "centralus"}
)
# Within the ResourceManagementClient is an object named resource_groups,
# which is of class ResourceGroupsOperations, which contains methods like
# create_or_update.
#
# The second parameter to create_or_update here is technically a ResourceGroup
# object. You can create the object directly using ResourceGroup(location=
# LOCATION) or you can express the object as inline JSON as shown here. For
# details, see Inline JSON pattern for object arguments at
# https://learn.microsoft.com/azure/developer/python/sdk
# /azure-sdk-library-usage-patterns#inline-json-pattern-for-object-arguments
print(
f"Provisioned resource group {rg_result.name} in the {rg_result.location} region"
)
# The return value is another ResourceGroup object with all the details of the
# new group. In this case the call is synchronous: the resource group has been
# provisioned by the time the call returns.
# To update the resource group, repeat the call with different properties, such
# as tags:
rg_result = resource_client.resource_groups.create_or_update(
"PythonAzureExample-rg",
{
"location": "centralus",
"tags": {"environment": "test", "department": "tech"},
},
)
print(f"Updated resource group {rg_result.name} with tags")
# Optional lines to delete the resource group. begin_delete is asynchronous.
# poller = resource_client.resource_groups.begin_delete(rg_result.name)
# result = poller.result()
Проверка подлинности в коде
Далее в этой статье вы войдите в Azure с помощью Azure CLI, чтобы запустить пример кода. Если у вашей учетной записи есть разрешения на создание и перечисление групп ресурсов в подписке Azure, код будет успешно запущен.
Чтобы использовать такой код в рабочем скрипте, можно задать переменные среды для использования метода на основе субъекта-службы для проверки подлинности. Дополнительные сведения см. в статье "Проверка подлинности приложений Python с помощью служб Azure". Необходимо убедиться, что субъект-служба имеет достаточные разрешения для создания и перечисления групп ресурсов в подписке, назначив ей соответствующую роль в Azure, например роль участника в подписке.
Ссылки на справку о классах, используемых в коде
4. Запуск скрипта
Если вы еще не сделали этого, войдите в Azure с помощью Azure CLI:
az login
Задайте для переменной
AZURE_SUBSCRIPTION_ID
среды идентификатор подписки. (Вы можете запустить команду az account show и получить идентификатор подписки изid
свойства в выходных данных):Запустите скрипт:
python provision_rg.py
5. Проверка группы ресурсов
Проверить, создана ли группа, можно на портале Azure или с помощью Azure CLI.
На портале Azure перейдите в раздел Группы ресурсов и проверьте, есть ли там созданная группа. Если страница раздела была открыта ранее, обновите ее.
Azure CLI: используйте команду az group show :
az group show -n PythonAzureExample-rg
6. Очистка ресурсов
Выполните команду az group delete, если не нужно хранить группу ресурсов, созданную в этом примере. Группы ресурсов не несут никаких текущих расходов в подписке, но ресурсы в группе ресурсов могут продолжать взиматься. Рекомендуется очистить любую группу, которую вы не используете. Аргумент --no-wait
позволяет команде выполнять возврат без задержки, не ожидая завершения операции.
az group delete -n PythonAzureExample-rg --no-wait
Для удаления группы ресурсов с помощью кода также можно использовать метод ResourceManagementClient.resource_groups.begin_delete
. Закомментированный код в нижней части скрипта в этой статье демонстрирует использование.
Для справки: эквивалентная команда Azure CLI
Следующая команда Azure CLI az group create создает группу ресурсов с тегами так же, как скрипт Python:
az group create -n PythonAzureExample-rg -l centralus --tags "department=tech" "environment=test"
См. также
- Пример. Перечисление групп ресурсов в подписке
- Пример. Создание служба хранилища Azure
- Пример. Использование служба хранилища Azure
- Пример. Создание веб-приложения и развертывание кода
- Пример. Создание и запрос базы данных
- Пример. Создание виртуальной машины
- Использование Управляемых дисков Azure с виртуальными машинами
- Пройдите короткий опрос об Azure SDK для Python