Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Erfahren Sie, wie Sie Python mit Azure Resource Manager verwenden, um Ihre Azure-Ressourcengruppen zu verwalten.
Voraussetzungen
Python 3.8 oder höher ist installiert. Informationen zum Installieren der aktuellen Version finden Sie auf Python.org.
Die folgenden Azure-Bibliothekspakete für Python wurden in Ihrer virtuellen Umgebung installiert. Verwenden Sie zum Installieren beliebiger Pakete
pip install {package-name}
:- azure-identity
- azure-mgmt-resource
- azure-mgmt-storage
Wenn Sie bereits ältere Versionen dieser Pakete in Ihrer virtuellen Umgebung installiert haben, müssen Sie sie möglicherweise mit
pip install --upgrade {package-name}
aktualisieren.In den Beispielen in diesem Artikel wird die CLI-basierte Authentifizierung (
AzureCliCredential
) verwendet. Abhängig von Ihrer Umgebung müssen Sie möglicherweise zuerstaz login
ausführen, um sich zu authentifizieren.Eine Umgebungsvariable mit Ihrer Azure-Abonnement-ID. Verwenden Sie zum Abrufen Ihrer Azure-Abonnement-ID Folgendes:
az account show --name 'your subscription name' --query id -o tsv
Um den Wert festzulegen, verwenden Sie die Option für Ihre Umgebung.
setx AZURE_SUBSCRIPTION_ID your-subscription-id
Hinweis
Wenn Sie nur in der aktuell ausgeführten Konsole auf die Umgebungsvariable zugreifen müssen, legen Sie die Umgebungsvariable mit
set
anstelle vonsetx
fest.Nachdem Sie die Umgebungsvariablen hinzugefügt haben, müssen Sie möglicherweise alle ausgeführten Programme neu starten, die die Umgebungsvariablen lesen müssen, einschließlich des Konsolenfensters. Wenn Sie beispielsweise Visual Studio als Editor verwenden, müssen Sie Visual Studio neu starten, bevor Sie das Beispiel ausführen.
Was ist eine Ressourcengruppe?
Eine Ressourcengruppe ist ein Container, der verwandte Ressourcen für eine Azure-Lösung enthält. Die Ressourcengruppe kann alle Ressourcen für die Lösung oder nur die Ressourcen enthalten, die Sie als Gruppe verwalten möchten. Sie entscheiden in Abhängigkeit davon, was für Ihre Organisation am sinnvollsten ist, wie Sie die Ressourcen den Ressourcengruppen hinzufügen. Im Allgemeinen fügen Sie einer Ressourcengruppe Ressourcen hinzu, die den gleichen Lebenszyklus haben, damit Sie diese einfacher als Gruppe bereitstellen, aktualisieren und löschen können.
In der Ressourcengruppe werden Metadaten zu den Ressourcen gespeichert. Wenn Sie einen Standort für die Ressourcengruppe angeben, legen Sie fest, wo die Metadaten gespeichert werden. Aus Compliancegründen müssen Sie unter Umständen sicherstellen, dass Ihre Daten in einer bestimmten Region gespeichert werden.
Erstellen von Ressourcengruppe
Verwenden Sie zum Erstellen einer Ressourcengruppe ResourceManagementClient.resource_groups.create_or_update.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.create_or_update(
"exampleGroup",
{
"location": "westus"
}
)
print(f"Provisioned resource group with ID: {rg_result.id}")
Ressourcengruppen auflisten
Verwenden Sie zum Auflisten der Ressourcengruppen in Ihrem Abonnement ResourceManagementClient.resource_groups.list.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_list = resource_client.resource_groups.list()
for rg in rg_list:
print(rg.name)
Um eine Ressourcengruppe zu erhalten, verwenden Sie ResourceManagementClient.resource_groups.get und geben den Namen der Ressourcengruppe an.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.get("exampleGroup")
print(f"Retrieved resource group {rg_result.name} in the {rg_result.location} region with resource ID {rg_result.id}")
Löschen von Ressourcengruppen
Verwenden Sie zum Löschen einer Ressourcengruppe ResourceManagementClient.resource_groups.begin_delete.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.begin_delete("exampleGroup")
Weitere Informationen dazu, in welcher Reihenfolge Ressourcenlöschungen in Azure Resource Manager durchgeführt werden, finden Sie unter Azure Resource Manager: Löschvorgang von Ressourcengruppen.
Bereitstellen von Ressourcen
Sie können Azure-Ressourcen mithilfe von Python-Klassen oder durch Bereitstellen einer Azure Resource Manager-Vorlage (ARM-Vorlage) bereitstellen.
Bereitstellen von Ressourcen mithilfe von Python-Klassen
Im folgenden Beispiel wird mithilfe von StorageManagementClient.storage_accounts.begin_create ein Speicherkonto erstellt. Der Name des Speicherkontos muss in Azure eindeutig sein.
import os
import random
from azure.identity import AzureCliCredential
from azure.mgmt.storage import StorageManagementClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
random_postfix = ''.join(random.choices('abcdefghijklmnopqrstuvwxyz1234567890', k=13))
storage_account_name = "demostore" + random_postfix
storage_client = StorageManagementClient(credential, subscription_id)
storage_account_result = storage_client.storage_accounts.begin_create(
"exampleGroup",
storage_account_name,
{
"location": "westus",
"sku": {
"name": "Standard_LRS"
}
}
)
Bereitstellen von Ressourcen mithilfe einer ARM-Vorlage
Um eine ARM-Vorlage bereitzustellen, verwenden Sie ResourceManagementClient.deployments.begin_create_or_update. Im folgenden Beispiel ist eine lokale Vorlage mit dem Namen storage.json
erforderlich.
import os
import json
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.resource.resources.models import DeploymentMode
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
resource_client = ResourceManagementClient(credential, subscription_id)
with open("storage.json", "r") as template_file:
template_body = json.load(template_file)
rg_deployment_result = resource_client.deployments.begin_create_or_update(
"exampleGroup",
"exampleDeployment",
{
"properties": {
"template": template_body,
"parameters": {
"storagePrefix": {
"value": "demostore"
},
},
"mode": DeploymentMode.incremental
}
}
)
Das folgende Beispiel zeigt die ARM-Vorlage mit dem Namen storage.json
, die Sie bereitstellen:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Weitere Informationen zum Bereitstellen einer ARM-Vorlage finden Sie unter Bereitstellen von Ressourcen mit ARM-Vorlagen und Azure CLI.
Ressourcengruppen sperren
Eine Sperre verhindert, dass andere Benutzer in Ihrer Organisation versehentlich wichtige Ressourcen löschen oder ändern.
Verwenden Sie ManagementLockClient.management_locks.create_or_update_at_resource_group_level, um zu verhindern, dass eine Ressourcengruppe und ihre Ressourcen gelöscht werden.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.create_or_update_at_resource_group_level(
"exampleGroup",
"lockGroup",
{
"level": "CanNotDelete"
}
)
Verwenden Sie zum Abrufen der Sperren für eine Ressourcengruppe ManagementLockClient.management_locks.list_at_resource_group_level.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_result = lock_client.management_locks.get_at_resource_group_level("exampleGroup", "lockGroup")
print(f"Lock {lock_result.name} applies {lock_result.level} lock")
Verwenden Sie zum Löschen einer Sperre für eine Ressourcengruppe ManagementLockClient.management_locks.delete_at_resource_group_level.
import os
from azure.identity import AzureCliCredential
from azure.mgmt.resource import ManagementLockClient
credential = AzureCliCredential()
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
lock_client = ManagementLockClient(credential, subscription_id)
lock_client.management_locks.delete_at_resource_group_level("exampleGroup", "lockGroup")
Weitere Informationen finden Sie unter Sperren von Ressourcen mit dem Azure-Ressourcen-Manager.
Hinzufügen von Tags zu Ressourcengruppen
Sie können Ressourcengruppen und Ressourcen Tags zuordnen, um sie logisch zu organisieren. Weitere Informationen finden Sie unter Verwenden von Tags zum Organisieren von Azure-Ressourcen.
Exportieren von Ressourcengruppen in Vorlagen
Zur Unterstützung beim Erstellen von ARM-Vorlagen können Sie eine Vorlage aus vorhandenen Ressourcen exportieren. Weitere Informationen finden Sie unter Verwenden des Azure-Portals zum Exportieren einer Vorlage.
Verwalten des Zugriffs auf Ressourcengruppen
Der Zugriff auf Ressourcen in Azure wird mithilfe der rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) verwaltet. Weitere Informationen finden Sie unter Hinzufügen oder Entfernen von Azure-Rollenzuweisungen mithilfe der Azure CLI.
Nächste Schritte
- Weitere Informationen zu Azure Resource Manager finden Sie unter Übersicht über Azure Resource Manager.
- Weitere Informationen zu Authentifizierungsoptionen finden Sie unter Authentifizieren von Python-Apps bei Azure-Diensten mithilfe des Azure-SDK für Python.