Przykład: wyświetlanie listy grup zasobów i zasobów przy użyciu bibliotek platformy Azure

W tym przykładzie pokazano, jak używać bibliotek zarządzania zestawem Azure SDK w skryscie języka Python do wykonywania dwóch zadań:

  • Wyświetl listę wszystkich grup zasobów w subskrypcji platformy Azure.
  • Wyświetlanie listy zasobów w określonej grupie 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.

Równoważne polecenia interfejsu wiersza polecenia platformy Azure są wymienione w dalszej części tego artykułu.

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. Środowisko wirtualne można utworzyć lokalnie lub w usłudze Azure Cloud Shell i uruchomić tam kod. Pamiętaj, aby aktywować środowisko wirtualne, aby rozpocząć korzystanie z niego.

  • Użyj środowiska conda.

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

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 do pracy z grupami zasobów

3a. Wyświetlanie listy grup zasobów w subskrypcji

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

# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os

# Acquire a credential object.
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)

# Retrieve the list of resource groups
group_list = resource_client.resource_groups.list()

# Show the groups in formatted output
column_width = 40

print("Resource Group".ljust(column_width) + "Location")
print("-" * (column_width * 2))

for group in list(group_list):
    print(f"{group.name:<{column_width}}{group.location}")

3b. Wyświetlanie listy zasobów w określonej grupie zasobów

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

Domyślnie kod wyświetla listę zasobów w grupie "myResourceGroup". Aby użyć innej grupy zasobów, ustaw RESOURCE_GROUP_NAME zmienną środowiskową na żądaną nazwę grupy.

# Import the needed credential and management objects from the libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
import os

# Acquire a credential object.
credential = DefaultAzureCredential()

# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]

# Retrieve the resource group to use, defaulting to "myResourceGroup".
resource_group = os.getenv("RESOURCE_GROUP_NAME", "myResourceGroup")

# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)

# Retrieve the list of resources in "myResourceGroup" (change to any name desired).
# The expand argument includes additional properties in the output.
resource_list = resource_client.resources.list_by_resource_group(
    resource_group, expand = "createdTime,changedTime")

# Show the groups in formatted output
column_width = 36

print("Resource".ljust(column_width) + "Type".ljust(column_width)
    + "Create date".ljust(column_width) + "Change date".ljust(column_width))
print("-" * (column_width * 4))

for resource in list(resource_list):
    print(f"{resource.name:<{column_width}}{resource.type:<{column_width}}"
       f"{str(resource.created_time):<{column_width}}{str(resource.changed_time):<{column_width}}")

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 skryptów

  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. Wyświetl listę wszystkich grup zasobów w subskrypcji:

    python list_groups.py
    
  4. Wyświetl listę wszystkich zasobów w grupie zasobów:

    python list_resources.py
    

    Domyślnie kod wyświetla listę zasobów w grupie "myResourceGroup". Aby użyć innej grupy zasobów, ustaw RESOURCE_GROUP_NAME zmienną środowiskową na żądaną nazwę grupy.

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

Następujące polecenie interfejsu wiersza polecenia platformy Azure wyświetla listę grup zasobów w subskrypcji:

az group list

Następujące polecenie wyświetla listę zasobów w grupie "myResourceGroup" w regionie centralus ( location argument jest niezbędny do zidentyfikowania określonego centrum danych):

az resource list --resource-group myResourceGroup --location centralus

Zobacz też