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 zostały zaznaczone.

1: Konfigurowanie lokalnego środowiska projektowego

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

2: Instalowanie pakietów bibliotek platformy Azure

Utwórz plik o nazwie requirements.txt z następującą zawartością:

azure-mgmt-resource
azure-identity

W terminalu lub wierszu polecenia z aktywowanym środowiskiem wirtualnym zainstaluj wymagania:

pip install -r requirements.txt

3. Pisanie kodu w celu utworzenia grupy zasobów

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

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

Uwierzytelnianie w kodzie

W dalszej części tego artykułu zalogujesz się na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure, aby uruchomić przykładowy kod. Jeśli Twoje konto ma uprawnienia do tworzenia i wyświetlania listy grup zasobów w ramach subskrypcji platformy Azure, kod zostanie uruchomiony pomyślnie.

Aby użyć takiego kodu w skryscie produkcyjnym, można ustawić zmienne środowiskowe, aby użyć metody opartej na jednostce usługi na potrzeby uwierzytelniania. Aby dowiedzieć się więcej, zobacz Jak uwierzytelniać aplikacje języka Python za pomocą usług platformy Azure. Musisz upewnić się, że jednostka usługi ma wystarczające uprawnienia do tworzenia i wyświetlania listy grup zasobów w ramach subskrypcji, przypisując jej odpowiednią rolę na platformie Azure, na przykład rolę Współautor w subskrypcji.

4. 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. Ustaw zmienną środowiskową AZURE_SUBSCRIPTION_ID na identyfikator subskrypcji. (Możesz uruchomić polecenie az account show i pobrać identyfikator subskrypcji z id właściwości w danych wyjściowych):

    set AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Uruchom skrypt:

    python provision_rg.py
    

5. Weryfikowanie grupy zasobów

Możesz sprawdzić, czy grupa 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. Jeśli masz już otwarty portal, użyj polecenia Refresh , aby zaktualizować listę.

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

    az group show -n PythonAzureExample-rg
    

6. 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.

az group delete -n PythonAzureExample-rg  --no-wait

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

Aby uzyskać informacje ogólne: równoważne polecenie interfejsu wiersza polecenia platformy Azure

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 też