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

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

  • Auflisten aller Ressourcengruppen in einem Azure-Abonnement
  • Auflisten von Ressourcen in 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 einige Optionen:

2: Installieren der Azure-Bibliothekspakete

Erstellen Sie eine Datei namens requirements.txt mit folgendem Inhalt:

azure-mgmt-resource
azure-identity

Installieren Sie in einem Terminal oder einer Eingabeaufforderung bei aktivierter virtueller Umgebung die Voraussetzungen:

pip install -r requirements.txt

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

3a. Auflisten von Ressourcengruppen in einem Abonnement

Erstellen Sie eine Python-Datei mit dem Namen list_groups.py und dem folgenden Code. Die Details werden in den Kommentaren erläutert:

# 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 in einer bestimmten Ressourcengruppe

Erstellen Sie eine Python-Datei mit dem Namen list_resources.py und dem folgenden Code. Die Details werden in den Kommentaren erläutert:

Ressourcen werden vom Code standardmäßig in „myResourceGroup“ aufgelistet. Legen Sie die Umgebungsvariable RESOURCE_GROUP_NAME auf den gewünschten Gruppennamen fest, um eine andere Ressourcengruppe zu verwenden.

# 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, z. B. 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 der Eigenschaft in der id Ausgabe abrufen):

    set 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
    

    Ressourcen werden vom Code standardmäßig in „myResourceGroup“ aufgelistet. Legen Sie die Umgebungsvariable RESOURCE_GROUP_NAME auf den gewünschten Gruppennamen fest, um eine andere Ressourcengruppe zu verwenden.

Zur Referenz: äquivalente 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

Weitere Informationen