Udostępnij za pośrednictwem


Przykład: tworzenie grupy zasobów przy użyciu bibliotek platformy Azure

W tym przykładzie pokazano, jak utworzyć grupę zasobów za pomocą bibliotek zarządzania zestawu Azure SDK w skryscie języka Python. ( Równoważne polecenie interfejsu wiersza polecenia platformy Azure jest podane w dalszej części tego artykułu. Jeśli wolisz korzystać z witryny Azure Portal, zobacz Tworzenie grup zasobów.

Wszystkie polecenia w tym artykule działają tak samo w powłokach poleceń systemu Linux/macOS i Windows, chyba że zaznaczono inaczej.

1: Konfigurowanie lokalnego środowiska projektowego

Jeśli jeszcze tego nie zrobiono, skonfiguruj środowisko, w którym można uruchomić ten kod. Oto kilka opcji:

  • Skonfiguruj środowisko wirtualne języka Python przy użyciu venv lub wybranego narzędzia. Aby rozpocząć korzystanie ze środowiska wirtualnego, pamiętaj, aby go aktywować. Aby zainstalować język Python, zobacz Instalowanie języka 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)
    
  • Użyj środowiska conda. Aby zainstalować aplikację Conda, zobacz Instalowanie narzędzia Miniconda.

  • Użyj kontenera deweloperskiego w Visual Studio Code lub GitHub Codespaces.

2: Instalowanie pakietów bibliotek platformy Azure

  1. W konsoli utwórz plik requirements.txt zawierający listę bibliotek zarządzania używanych w tym przykładzie:

    azure-mgmt-resource
    azure-identity
    
  2. W konsoli z aktywowanym środowiskiem wirtualnym zainstaluj wymagania:

    pip install -r requirements.txt
    

3. Ustawianie zmiennych środowiskowych

W tym kroku ustawisz zmienne środowiskowe do użycia w kodzie w tym artykule. Kod używa os.environ metody do pobrania wartości.

#!/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. Pisanie kodu w celu utworzenia grupy zasobów

W tym kroku utworzysz plik w języku Python o nazwie provision_blob.py przy użyciu następującego kodu. Ten skrypt języka Python używa zestawu Azure SDK dla bibliotek zarządzania języka Python do utworzenia grupy zasobów w ramach subskrypcji platformy Azure.

Utwórz plik w języku Python o nazwie provision_rg.py przy użyciu następującego kodu. Komentarze wyjaśniają szczegóły:

# 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()

Uwierzytelnianie w kodzie

W dalszej części tego artykułu zalogujesz się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure, aby wykonać przykładowy kod. Jeśli twoje konto ma wystarczające uprawnienia do tworzenia grup zasobów i zasobów magazynu w ramach subskrypcji platformy Azure, skrypt powinien zostać uruchomiony pomyślnie bez dodatkowej konfiguracji.

Aby użyć tego kodu w środowisku produkcyjnym, uwierzytelnij się przy użyciu jednostki usługi, ustawiając zmienne środowiskowe. Takie podejście umożliwia bezpieczny, zautomatyzowany dostęp bez konieczności polegania na interaktywnym logowaniu. Aby uzyskać szczegółowe wskazówki, zobacz Jak uwierzytelniać aplikacje języka Python za pomocą usług platformy Azure.

Upewnij się, że jednostka usługi ma przypisaną rolę z wystarczającymi uprawnieniami do tworzenia grup zasobów i kont magazynowych. Na przykład przypisanie roli Współautor na poziomie subskrypcji zapewnia niezbędny dostęp. Aby dowiedzieć się więcej na temat przypisań ról, zobacz Kontrola dostępu oparta na rolach (RBAC) na platformie Azure.

5. Uruchamianie skryptu

  1. Jeśli jeszcze tego nie zrobiono, zaloguj się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure:

    az login
    
  2. Uruchom skrypt:

    python provision_rg.py
    

6. Weryfikowanie grupy zasobów

Możesz sprawdzić, czy grupa zasobów istnieje za pośrednictwem witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

  • Witryna Azure Portal: otwórz witrynę Azure Portal, wybierz pozycję Grupy zasobów i sprawdź, czy grupa jest wymieniona. W razie potrzeby użyj polecenia Refresh , aby zaktualizować listę.

  • Interfejs wiersza polecenia platformy Azure: użyj polecenia az group show :

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

7. Czyszczenie zasobów

Uruchom polecenie az group delete , jeśli nie musisz przechowywać grupy zasobów utworzonej w tym przykładzie. Grupy zasobów nie generują żadnych bieżących opłat w ramach subskrypcji, ale zasoby w grupie zasobów mogą nadal ponosić opłaty. Dobrym rozwiązaniem jest wyczyszczenie każdej grupy, której nie używasz aktywnie. Argument --no-wait umożliwia polecenie natychmiastowego zwrócenia zamiast oczekiwania na zakończenie operacji.

#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait

Możesz również użyć metody ResourceManagementClient.resource_groups.begin_delete, aby usunąć grupę zasobów z kodu. Kod z komentarzem w dolnej części skryptu w tym artykule pokazuje użycie.

Dla odniesienia: równoważne polecenie Azure CLI

Następujące polecenie az group create interfejsu wiersza polecenia platformy Azure tworzy grupę zasobów z tagami podobnie jak skrypt języka Python:

az group create -n PythonAzureExample-rg -l centralus --tags "department=tech" "environment=test"

Zobacz także