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 äquivalenten Azure CLI-Befehle werden weiter unten in diesem Artikel aufgelistet.
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:
Konfigurieren Sie eine virtuelle Python-Umgebung mithilfe von
venv
oder dem Tool Ihrer Wahl. Sie können die virtuelle Umgebung lokal oder in Azure Cloud Shell erstellen und den Code dort ausführen. Stellen Sie sicher, dass Sie die virtuelle Umgebung aktivieren, um sie verwenden zu können.Verwenden Sie eine Conda-Umgebung.
Verwenden Sie einen Entwicklungscontainer in Visual Studio Code oder GitHub Codespaces.
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 Verwendung von 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.
Zur Verwendung eines solchen Codes in einem Produktionsskript können Sie Umgebungsvariablen so festlegen, dass eine dienstprinzipalbasierte Methode zur 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.
Referenzlinks für im Code verwendete Klassen
4: Ausführen der Skripts
Wenn Sie das noch nicht getan haben, melden Sie sich mithilfe der Azure CLI bei Azure an:
az login
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 derid
Eigenschaft in der Ausgabe abrufen):Auflisten aller Ressourcengruppen im Abonnement:
python list_groups.py
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
Mit dem folgenden Azure CLI-Befehl werden Ressourcengruppen in einem Abonnement aufgelistet:
az group list
Der folgende Befehl listet Ressourcen in „myResourceGroup“ in der Region „centralus“ auf (das location
Argument ist zum Identifizieren eines bestimmten Rechenzentrums erforderlich):
az resource list --resource-group myResourceGroup --location centralus
Weitere Informationen
- Beispiel: Bereitstellen einer Ressourcengruppe
- Beispiel: Bereitstellen von Azure Storage
- Beispiel: Verwenden von Azure Storage
- Beispiel: Bereitstellen einer Web-App sowie von Code
- Beispiel: Bereitstellen und Abfragen einer Datenbank
- Beispiel: Bereitstellen eines virtuellen Computers
- Verwenden verwalteter Azure-Datenträger mit den Azure-Bibliotheken (SDK) für Python
- Kurze Umfrage zum Azure SDK für Python