Поделиться через


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

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

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

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

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

  • Настройте виртуальную среду Python с помощью venv или выбранного средства. Чтобы начать использовать виртуальную среду, обязательно активируйте ее. Сведения об установке Python см. в разделе "Установка Python".

    #!/bin/bash
    # Create a virtual environment
    python -m venv .venv
    # Activate the virtual environment
    source .venv/Scripts/activate # only required for Windows (Git Bash)
    
  • Используйте среду conda. Сведения об установке Conda см. в разделе "Установка Miniconda".

  • Используйте контейнер разработки в Visual Studio Code или GitHub Codespaces.

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

  1. В консоли создайте файлrequirements.txt , в который перечислены библиотеки управления, используемые в этом примере:

    azure-mgmt-resource
    azure-identity
    
  2. В консоли с активированной виртуальной средой установите требования:

    pip install -r requirements.txt
    

3. Установите переменные среды

На этом шаге вы устанавливаете переменные среды для использования в коде в этой статье. Код использует os.environ метод для получения значений.

#!/bin/bash
export AZURE_RESOURCE_GROUP_NAME=<ResourceGroupName> # Change to your preferred resource group name
export LOCATION=<Location> # Change to your preferred region
export AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)

4. Написание кода для создания группы ресурсов

На этом шаге вы создадите файл Python с именем provision_blob.py со следующим кодом. Этот скрипт Python использует библиотеки управления Azure SDK для Python для создания группы ресурсов в подписке Azure.

Создайте файл 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"]

# Retrieve resource group name and location from environment variables
RESOURCE_GROUP_NAME = os.environ["AZURE_RESOURCE_GROUP_NAME"]
LOCATION = os.environ["LOCATION"]

# 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(RESOURCE_GROUP_NAME,
    { "location": LOCATION })

print(f"Provisioned resource group {rg_result.name}")

# 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(
    RESOURCE_GROUP_NAME,
    {
        "location": LOCATION,
        "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".

Убедитесь, что субъект-служба назначена роль с достаточными разрешениями для создания групп ресурсов и учетных записей хранения. Например, назначение роли участника на уровне подписки обеспечивает необходимый доступ. Дополнительные сведения о назначениях ролей см. в статье "Управление доступом на основе ролей" (RBAC) в Azure.

5. Запуск скрипта

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

    az login
    
  2. Запустите скрипт:

    python provision_rg.py
    

6. Проверка группы ресурсов

Вы можете убедиться, что группа ресурсов существует через портал Azure или Azure CLI.

  • Портал Azure: откройте портал Azure, выберите группы ресурсов и убедитесь, что указана группа. При необходимости используйте команду "Обновить ", чтобы обновить список.

  • Azure CLI: используйте команду az group show :

    #!/bin/bash
    az group show -n $AZURE_RESOURCE_GROUP_NAME
    

7. Очистка ресурсов

Выполните команду az group delete , если не нужно хранить группу ресурсов, созданную в этом примере. Группы ресурсов не несут никаких текущих расходов в вашей подписке, но ресурсы в группе ресурсов могут продолжать начислять расходы. Рекомендуется очистить любую группу, которую вы активно не используете. Аргумент --no-wait позволяет команде немедленно вернуться, а не ожидать завершения операции.

#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --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"

См. также