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.
In diesem Artikel erfahren Sie, wie Sie die Azure-Verwaltungsbibliotheken für Python verwenden, um eine Ressourcengruppe zusammen mit einem Azure Storage-Konto und einem Blob Storage-Container zu erstellen.
Lesen Sie nach der Bereitstellung dieser Ressourcen den Abschnitt "Beispiel: Verwenden von Azure Storage ", um zu sehen, wie Sie die Azure-Clientbibliotheken in Python verwenden, um eine Datei in den Blob-Container hochzuladen.
Die entsprechenden Azure CLI-Befehle für Bash und PowerShell werden weiter unten in diesem Artikel aufgeführt. Wenn Sie das Azure-Portal verwenden möchten, lesen Sie " Erstellen eines Azure-Speicherkontos " und "Erstellen eines BLOB-Containers".
1: Einrichten Ihrer lokalen Entwicklungsumgebung
Falls noch nicht geschehen, richten Sie eine Umgebung ein, in der Sie den 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)
Verwenden Sie eine conda-Umgebung. Informationen zum Installieren von Conda finden Sie unter Installieren von Miniconda.
Verwenden Sie einen Dev Container in Visual Studio Code oder GitHub Codespaces.
2: Installieren der erforderlichen Azure-Bibliothekspakete
Erstellen Sie in der Konsole eine requirements.txt Datei, in der die in diesem Beispiel verwendeten Verwaltungsbibliotheken aufgelistet sind:
azure-mgmt-resource azure-mgmt-storage azure-identity
Installieren Sie in Ihrer Konsole mit aktivierter virtueller Umgebung die Anforderungen:
pip install -r requirements.txt
3. Festlegen von Umgebungsvariablen
In diesem Schritt legen Sie Umgebungsvariablen für die Verwendung im Code in diesem Artikel fest. Der Code verwendet die os.environ
Methode, um die Werte abzurufen.
#!/bin/bash
export AZURE_RESOURCE_GROUP_NAME=<ResourceGroupName> # Change to your preferred resource group name
export LOCATION=<Location> # Change to your preferred region
export AZURE_SUBSCRIPTION_ID=$(az account show --query id --output tsv)
export STORAGE_ACCOUNT_NAME=<StorageAccountName> # Change to your preferred storage account name
export CONTAINER_NAME=<ContainerName> # Change to your preferred container name
4: Schreiben von Code zum Erstellen eines Speicherkontos und blob-Containers
In diesem Schritt erstellen Sie eine Python-Datei mit dem Namen provision_blob.py mit dem folgenden Code. Dieses Python-Skript verwendet das Azure SDK für Python-Verwaltungsbibliotheken zum Erstellen einer Ressourcengruppe, eines Azure Storage-Kontos und eines Blob-Containers mit dem Azure SDK für Python.
import os, random
# Import the needed management objects from the libraries. The azure.common library
# is installed automatically with the other libraries.
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.storage import StorageManagementClient
from azure.mgmt.storage.models import BlobContainer
# Acquire a credential object.
credential = DefaultAzureCredential()
# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
# Retrieve resource group name and location from environment variables
RESOURCE_GROUP_NAME = os.environ["AZURE_RESOURCE_GROUP_NAME"]
LOCATION = os.environ["LOCATION"]
# Step 1: Provision the resource group.
resource_client = ResourceManagementClient(credential, subscription_id)
rg_result = resource_client.resource_groups.create_or_update(RESOURCE_GROUP_NAME,
{ "location": LOCATION })
print(f"Provisioned resource group {rg_result.name}")
# For details on the previous code, see Example: Provision a resource group
# at https://docs.microsoft.com/azure/developer/python/azure-sdk-example-resource-group
# Step 2: Provision the storage account, starting with a management object.
storage_client = StorageManagementClient(credential, subscription_id)
STORAGE_ACCOUNT_NAME = os.environ["STORAGE_ACCOUNT_NAME"]
# Check if the account name is available. Storage account names must be unique across
# Azure because they're used in URLs.
availability_result = storage_client.storage_accounts.check_name_availability(
{ "name": STORAGE_ACCOUNT_NAME }
)
if not availability_result.name_available:
print(f"Storage name {STORAGE_ACCOUNT_NAME} is already in use. Try another name.")
exit()
# The name is available, so provision the account
poller = storage_client.storage_accounts.begin_create(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME,
{
"location" : LOCATION,
"kind": "StorageV2",
"sku": {"name": "Standard_LRS"}
}
)
# Long-running operations return a poller object; calling poller.result()
# waits for completion.
account_result = poller.result()
print(f"Provisioned storage account {account_result.name}")
# Step 3: Retrieve the account's primary access key and generate a connection string.
keys = storage_client.storage_accounts.list_keys(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME)
print(f"Primary key for storage account: {keys.keys[0].value}")
conn_string = f"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={STORAGE_ACCOUNT_NAME};AccountKey={keys.keys[0].value}"
# print(f"Connection string: {conn_string}")
# Step 4: Provision the blob container in the account (this call is synchronous)
CONTAINER_NAME = os.environ["CONTAINER_NAME"]
container = storage_client.blob_containers.create(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME, CONTAINER_NAME, BlobContainer())
print(f"Provisioned blob container {container.name}")
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 ausreichende Berechtigungen zum Erstellen von Ressourcengruppen und Speicherressourcen in Ihrem Azure-Abonnement verfügt, sollte das Skript ohne zusätzliche Konfiguration erfolgreich ausgeführt werden.
Um diesen Code in einer Produktionsumgebung zu verwenden, authentifizieren Sie sich mithilfe eines Dienstprinzipals, indem Sie Umgebungsvariablen festlegen. Dieser Ansatz ermöglicht einen sicheren, automatisierten Zugriff, ohne sich auf die interaktive Anmeldung zu verlassen. Ausführliche Anleitungen finden Sie unter Authentifizieren von Python-Apps mit Azure-Diensten.
Stellen Sie sicher, dass dem Dienstprinzipal eine Rolle mit ausreichenden Berechtigungen zum Erstellen von Ressourcengruppen und Speicherkonten zugewiesen ist. Beispielsweise bietet das Zuweisen der Rolle "Mitwirkender" auf Abonnementebene den erforderlichen Zugriff. Weitere Informationen zu Rollenzuweisungen finden Sie unter Rollenbasierte Zugriffssteuerung (Role-based access control, RBAC) in Azure.
Referenzlinks für klassen, die im Code verwendet werden
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
5. Ausführen des Skripts
Falls noch nicht geschehen, melden Sie sich mit der Azure CLI bei Azure an:
az login
Ausführen des Skripts:
python provision_blob.py
Das Skript benötigt ein oder zwei Minuten zur Ausführung.
6: Überprüfen der Ressourcen
Öffnen Sie das Azure-Portal , um zu überprüfen, ob die Ressourcengruppe und das Speicherkonto wie erwartet erstellt wurden. Möglicherweise müssen Sie eine Minute warten und außerdem Ausgeblendete Typen anzeigen in der Ressourcengruppe auswählen.
Wählen Sie das Speicherkonto und dann im linken Menü "Datenspeichercontainer>" aus, um zu überprüfen, ob "blob-container-01" angezeigt wird:
Wenn Sie versuchen möchten, diese Ressourcen aus Dem Anwendungscode zu verwenden, fahren Sie mit Beispiel fort: Verwenden Sie Azure Storage.
Ein weiteres Beispiel für die Verwendung der Azure Storage-Verwaltungsbibliothek finden Sie im Beispiel "Python Storage verwalten".
7: Bereinigen von Ressourcen
Behalten Sie die Ressourcen bei, wenn Sie dem Artikel "Beispiel" folgen möchten: Verwenden Sie Azure Storage , um diese Ressourcen im App-Code zu verwenden. Führen Sie andernfalls den Befehl " az group delete " aus, wenn Sie die in diesem Beispiel erstellte Ressourcengruppe und Speicherressourcen nicht beibehalten müssen.
Ressourcengruppen verursachen keine laufenden Gebühren in Ihrem Abonnement, aber Ressourcen, wie Speicherkonten in der Ressourcengruppe, können Gebühren verursachen. Es empfiehlt sich, alle Gruppen zu bereinigen, die Sie nicht aktiv verwenden. Mit dem Argument --no-wait
kann der Befehl sofort zurückgegeben werden, anstatt auf den Abschluss des Vorgangs zu warten.
#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait
Referenz: entsprechende Azure CLI-Befehle
Die folgenden Azure CLI-Befehle führen dieselben Erstellungsschritte wie das Python-Skript aus:
#!/bin/bash
#!/bin/bash
# Set variables
export LOCATION=<Location> # Change to your preferred region
export AZURE_RESOURCE_GROUP_NAME=<ResourceGroupName> # Change to your preferred resource group name
export STORAGE_ACCOUNT_NAME=<StorageAccountName> # Change to your preferred storage account name
export CONTAINER_NAME=<ContainerName> # Change to your preferred container name
# Provision the resource group
echo "Creating resource group: $AZURE_RESOURCE_GROUP_NAME"
az group create \
--location "$LOCATION" \
--name "$AZURE_RESOURCE_GROUP_NAME"
# Provision the storage account
az storage account create -g $AZURE_RESOURCE_GROUP_NAME -l $LOCATION -n $STORAGE ACCOUNT_NAME --kind StorageV2 --sku Standard_LRS
echo Storage account name is $STORAGE_ACCOUNT_NAME
# Retrieve the connection string
CONNECTION_STRING=$(az storage account show-connection-string -g $AZURE_RESOURCE_GROUP_NAME -n $STORAGE_ACCOUNT_NAME --query connectionString)
# Provision the blob container
az storage container create --name $CONTAINER_NAME --account-name $STORAGE_ACCOUNT_NAME --connection-string $CONNECTION_STRING
Siehe auch
- Beispiel: Verwenden von Azure Storage
- Beispiel: Erstellen einer Ressourcengruppe
- Beispiel: Auflisten von Ressourcengruppen in einem Abonnement
- Beispiel: Erstellen einer Web-App und Bereitstellen von Code
- Beispiel: Erstellen und Abfragen einer Datenbank
- Beispiel: Erstellen eines virtuellen Computers
- Verwenden von Azure Managed Disks mit virtuellen Computern
- Eine kurze Umfrage zum Azure SDK für Python abschließen