Пример. Создание группы ресурсов с помощью библиотек Azure

В этом примере показано, как использовать библиотеки управления azure SDK в скрипте Python для создания группы ресурсов. (The Эквивалентная команда Azure CLI приведена далее в этой статье. Если вы предпочитаете использовать портал Azure, см. статью "Создание групп ресурсов".)

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

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

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

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. Запуск скрипта

  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 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"

См. также