Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du använder Azure-hanteringsbiblioteken för Python för att skapa en resursgrupp, tillsammans med ett Azure Storage-konto och en Blob Storage-container.
När du har etablerat dessa resurser läser du avsnittet Exempel: Använd Azure Storage för att se hur du använder Azure-klientbiblioteken i Python för att ladda upp en fil till Blob-containern.
Motsvarande Azure CLI-kommandon för bash och PowerShell visas senare i den här artikeln. Om du föredrar att använda Azure-portalen kan du läsa Skapa ett Azure Storage-konto och Skapa en blobcontainer.
1: Konfigurera din lokala utvecklingsmiljö
Om du inte redan har gjort det konfigurerar du en miljö där du kan köra koden. Här är några alternativ:
Konfigurera en virtuell Python-miljö med hjälp av
venveller valfritt verktyg. Om du vill börja använda den virtuella miljön måste du aktivera den. Information om hur du installerar Python finns i Installera 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)Använd en conda-miljö. Information om hur du installerar Conda finns i Installera Miniconda.
Använd en Dev Container i Visual Studio Code eller GitHub Codespaces.
2: Installera nödvändiga Azure-bibliotekspaket
I konsolen skapar du en requirements.txt fil som visar de hanteringsbibliotek som används i det här exemplet:
azure-mgmt-resource azure-mgmt-storage azure-identityInstallera kraven i konsolen med den virtuella miljön aktiverad:
pip install -r requirements.txt
3. Ange miljövariabler
I det här steget anger du miljövariabler som ska användas i koden i den här artikeln. Koden använder os.environ metoden för att hämta värdena.
#!/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: Skriva kod för att skapa ett lagringskonto och en blobcontainer
I det här steget skapar du en Python-fil med namnet provision_blob.py med följande kod. Det här Python-skriptet använder Azure SDK för Python-hanteringsbibliotek för att skapa en resursgrupp, Ett Azure Storage-konto och en blobcontainer med hjälp av 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}")
Autentisering i koden
Senare i den här artikeln loggar du in på Azure med Hjälp av Azure CLI för att köra exempelkoden. Om ditt konto har tillräcklig behörighet för att skapa resursgrupper och lagringsresurser i din Azure-prenumeration bör skriptet köras utan ytterligare konfiguration.
Om du vill använda den här koden i en produktionsmiljö autentiserar du med tjänstens huvudnamn genom att ange miljövariabler. Den här metoden möjliggör säker, automatiserad åtkomst utan att förlita sig på interaktiv inloggning. Detaljerad vägledning finns i Autentisera Python-appar med Azure-tjänster.
Kontrollera att tjänstens huvudkonto har tilldelats en roll med tillräcklig behörighet för att skapa resursgrupper och lagringskonton. Om du till exempel tilldelar rollen Deltagare på prenumerationsnivå får du nödvändig åtkomst. Mer information om rolltilldelningar finns i Rollbaserad åtkomstkontroll (RBAC) i Azure.
Referenslänkar för klasser som används i koden
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
5. Kör skriptet
Logga in på Azure med hjälp av Azure CLI om du inte redan har gjort det.
az login
Kör skriptet:
python provision_blob.pySkriptet tar en minut eller två att slutföra.
6: Verifiera resurserna
Öppna Azure-portalen för att kontrollera att resursgruppen och lagringskontot har skapats som förväntat. Du kan behöva vänta en minut och även välja Visa dolda typer i resursgruppen.
Välj lagringskontot och välj sedanDatalagringscontainrar> på den vänstra menyn för att kontrollera att "blob-container-01" visas:
Om du vill prova att använda dessa resurser från programkoden fortsätter du med Exempel: Använd Azure Storage.
Ett annat exempel på hur du använder Azure Storage-hanteringsbiblioteket finns i Hantera Python Storage-exempel.
7: Rensa resurser
Låt resurserna vara kvar om du vill följa artikeln Exempel: Använd Azure Storage för att använda dessa resurser i appkoden. Annars kör du kommandot az group delete om du inte behöver behålla resursgruppen och lagringsresurserna som skapats i det här exemplet.
Resursgrupper medför inga löpande avgifter i din prenumeration, men resurser, till exempel lagringskonton, i resursgruppen kan medföra avgifter. Det är en bra idé att rensa alla grupper som du inte aktivt använder. Argumentet --no-wait gör att kommandot kan returneras omedelbart i stället för att vänta på att åtgärden ska slutföras.
#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait
Som referens: motsvarande Azure CLI-kommandon
Följande Azure CLI-kommandon utför samma skapandesteg som Python-skriptet:
#!/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
Se även
- exempel: Använda Azure Storage
- Exempel: Skapa en resursgrupp
- Exempel: Lista resursgrupper i en prenumeration
- Exempel: Skapa en webbapp och distribuera kod
- Exempel: Skapa och fråga en databas
- exempel: Skapa en virtuell dator
- Använda Azure Managed Disks med virtuella datorer
- Slutför en kort undersökning om Azure SDK för Python