Freigeben über


Beispiel: Verwenden der Azure-Bibliotheken zum Auflisten von Ressourcengruppen und Ressourcen

In diesem Beispiel wird veranschaulicht, wie Sie die Azure SDK-Verwaltungsbibliotheken in einem Python-Skript verwenden, um zwei Aufgaben auszuführen:

  • Listet alle Ressourcengruppen in einem Azure-Abonnement auf.
  • Auflisten von Ressourcen innerhalb einer bestimmten Ressourcengruppe.

Alle Befehle in diesem Artikel funktionieren in Linux-/macOS-Bash- und Windows-Befehlsshells identisch, sofern nicht anders angegeben.

Die entsprechenden Azure CLI-Befehle werden weiter unten in diesem Artikel aufgeführt.

1: Einrichten Ihrer lokalen Entwicklungsumgebung

Falls noch nicht geschehen, richten Sie eine Umgebung ein, in der Sie diesen Code ausführen können. Hier sind einige Optionen:

  • Konfigurieren Sie eine virtuelle Python-Umgebung mit venv oder Ihrem Wahltool. Um mit der Verwendung der virtuellen Umgebung zu beginnen, müssen Sie sie aktivieren. Informationen zum Installieren von Python finden Sie unter Installieren von 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)

2: Installieren der Azure-Bibliothekspakete

Erstellen Sie eine Datei mit dem Namen requirements.txt mit folgendem Inhalt:

azure-mgmt-resource
azure-identity

Installieren Sie in einer Terminal- oder Eingabeaufforderung mit aktivierter virtueller Umgebung die Anforderungen:

pip install -r requirements.txt

3: Schreiben von Code für die Arbeit mit Ressourcengruppen

3a. Ressourcengruppen in einem Abonnement auflisten

Erstellen Sie eine Python-Datei mit dem Namen list_groups.py mit dem folgenden Code. Die Kommentare erläutern die Details:

# 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. Auflisten von Ressourcen innerhalb einer bestimmten Ressourcengruppe

Erstellen Sie eine Python-Datei mit dem Namen list_resources.py mit dem folgenden Code. In den Kommentaren werden die Details erläutert.

Standardmäßig listet der Code Ressourcen in "myResourceGroup" auf. Um eine andere Ressourcengruppe zu verwenden, legen Sie die Umgebungsvariable RESOURCE_GROUP_NAME auf den gewünschten Gruppennamen fest.

# 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}}")

Authentifizierung im Code

Später in diesem Artikel melden Sie sich mit der Azure CLI bei Azure an, um den Beispielcode auszuführen. Wenn Ihr Konto über Berechtigungen zum Erstellen und Auflisten von Ressourcengruppen in Ihrem Azure-Abonnement verfügt, wird der Code erfolgreich ausgeführt.

Um diesen Code in einem Produktionsskript zu verwenden, können Sie Umgebungsvariablen so festlegen, dass eine dienstprinzipalbasierte Methode für die Authentifizierung verwendet wird. Weitere Informationen finden Sie unter Authentifizieren von Python-Apps mit Azure-Diensten. Sie müssen sicherstellen, dass der Dienstprinzipal über ausreichende Berechtigungen zum Erstellen und Auflisten von Ressourcengruppen in Ihrem Abonnement verfügt, indem Sie ihm eine entsprechende Rolle in Azure zuweisen. Beispielsweise die Rolle "Mitwirkender" in Ihrem Abonnement.

4: Ausführen der Skripts

  1. Falls noch nicht geschehen, melden Sie sich mit der Azure CLI bei Azure an:

    az login
    
  2. Legen Sie die AZURE_SUBSCRIPTION_ID Umgebungsvariable auf Ihre Abonnement-ID fest. (Sie können den Befehl az account show ausführen und Ihre Abonnement-ID aus den id Eigenschaften in der Ausgabe abrufen):

    export AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Auflisten aller Ressourcengruppen im Abonnement:

    python list_groups.py
    
  4. Auflisten aller Ressourcen in einer Ressourcengruppe:

    python list_resources.py
    

    Standardmäßig listet der Code Ressourcen in "myResourceGroup" auf. Um eine andere Ressourcengruppe zu verwenden, legen Sie die Umgebungsvariable RESOURCE_GROUP_NAME auf den gewünschten Gruppennamen fest.

Referenz: entsprechende Azure CLI-Befehle

Der folgende Azure CLI-Befehl listet Ressourcengruppen in einem Abonnement auf:

az group list

Der folgende Befehl listet Ressourcen innerhalb der "myResourceGroup" in der zentralen Region auf (das location Argument ist erforderlich, um ein bestimmtes Rechenzentrum zu identifizieren):

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

Siehe auch