Freigeben über


Beispiel: Verwenden der Azure-Bibliotheken zum Erstellen einer Ressourcengruppe

In diesem Beispiel wird veranschaulicht, wie die Azure SDK-Verwaltungsbibliotheken in einem Python-Skript verwendet werden, um eine Ressourcengruppe zu erstellen. (Den äquivalenten Azure CLI-Befehl finden Sie weiter unten in diesem Artikel. Wenn Sie das Azure-Portal bevorzugen, finden Sie weitere Informationen unter Erstellen von Ressourcengruppen".)

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

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 zum Erstellen einer Ressourcengruppe

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

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

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.

4: Ausführen des Skripts

  1. Wenn Sie das noch nicht getan haben, melden Sie sich mithilfe 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 id Eigenschaft in der Ausgabe abrufen):

    set AZURE_SUBSCRIPTION_ID=00000000-0000-0000-0000-000000000000
    
  3. Ausführen des Skripts:

    python provision_rg.py
    

5: Überprüfen der Ressourcengruppe

Sie können mithilfe des Azure-Portals oder der Azure CLI überprüfen, ob die Gruppe vorhanden ist.

  • Azure-Portal: Öffnen Sie das Azure-Portal, wählen Sie Ressourcengruppen aus, und überprüfen Sie, ob die Gruppe aufgeführt ist. Wenn das Portal bereits geöffnet war, verwenden Sie den Befehl Aktualisieren, um die Liste zu aktualisieren.

  • Azure CLI: Verwenden Sie den Befehl az group show:

    az group show -n PythonAzureExample-rg
    

6: Bereinigen von Ressourcen

Führen Sie den Befehl az group delete aus, wenn Sie die in diesem Beispiel erstellte Ressourcengruppe nicht beibehalten müssen. Ressourcengruppen verursachen keine laufenden Gebühren in Ihrem Abonnement, aber Ressourcen in der Ressourcengruppe können weiterhin Gebühren verursachen. Es hat sich bewährt, jede Gruppe zu bereinigen, die Sie nicht aktiv verwenden. Das Argument --no-wait ermöglicht die direkte Rückgabe des Befehls, und es muss nicht auf den Abschluss des Vorgangs gewartet werden.

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

Sie können auch die ResourceManagementClient.resource_groups.begin_delete-Methode verwenden, um eine Ressourcengruppe aus dem Code zu löschen. Der kommentierte Code unten im Skript in diesem Artikel veranschaulicht die Verwendung.

Zur Referenz: äquivalenter Azure CLI-Befehl

Der folgende Azure CLI-Befehl az group create erstellt eine Ressourcengruppe mit Tags genau wie das Python-Skript:

az group create -n PythonAzureExample-rg -l centralus --tags "department=tech" "environment=test"

Weitere Informationen