Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Z tego artykułu dowiesz się, jak za pomocą bibliotek zarządzania platformy Azure dla języka Python utworzyć grupę zasobów wraz z kontem usługi Azure Storage i kontenerem usługi Blob Storage.
Po aprowizacji tych zasobów zapoznaj się z sekcją Przykład: Używanie usługi Azure Storage do sprawdzenia, jak używać bibliotek klienckich platformy Azure w języku Python do przekazywania pliku do kontenera obiektów blob.
Równoważne polecenia Azure CLI dla bash i PowerShell są wymienione w dalszej części tego artykułu. Jeśli wolisz korzystać z witryny Azure Portal, zobacz Tworzenie konta usługi Azure Storage i Tworzenie kontenera obiektów blob.
1: Konfigurowanie lokalnego środowiska projektowego
Jeśli jeszcze tego nie zrobiono, skonfiguruj środowisko, w którym można uruchomić kod. Oto kilka opcji:
Skonfiguruj środowisko wirtualne języka Python przy użyciu
venv
lub wybranego narzędzia. Aby rozpocząć korzystanie ze środowiska wirtualnego, pamiętaj, aby go aktywować. Aby zainstalować język Python, zobacz Instalowanie języka 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)
Użyj środowiska Conda. Aby zainstalować aplikację Conda, zobacz Instalowanie narzędzia Miniconda.
Użyj kontenera deweloperskiego w Visual Studio Code lub GitHub Codespaces.
2: Instalowanie wymaganych pakietów bibliotek platformy Azure
W konsoli utwórz plik requirements.txt zawierający listę bibliotek zarządzania używanych w tym przykładzie:
azure-mgmt-resource azure-mgmt-storage azure-identity
W konsoli z aktywowanym środowiskiem wirtualnym zainstaluj wymagania:
pip install -r requirements.txt
3. Ustawianie zmiennych środowiskowych
W tym kroku ustawisz zmienne środowiskowe do użycia w kodzie w tym artykule. Kod używa os.environ
metody do pobrania wartości.
#!/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
Napisz kod, aby utworzyć konto pamięci masowej i kontener obiektów blob
W tym kroku utworzysz plik w języku Python o nazwie provision_blob.py przy użyciu następującego kodu. Ten skrypt języka Python używa zestawu Azure SDK dla bibliotek zarządzania języka Python do tworzenia grupy zasobów, konta usługi Azure Storage i kontenera obiektów blob przy użyciu zestawu Azure SDK dla języka 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}")
Uwierzytelnianie w kodzie
W dalszej części tego artykułu zalogujesz się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure, aby wykonać przykładowy kod. Jeśli twoje konto ma wystarczające uprawnienia do tworzenia grup zasobów i zasobów magazynu w ramach subskrypcji platformy Azure, skrypt powinien zostać uruchomiony pomyślnie bez dodatkowej konfiguracji.
Aby użyć tego kodu w środowisku produkcyjnym, uwierzytelnij się przy użyciu jednostki usługi, ustawiając zmienne środowiskowe. Takie podejście umożliwia bezpieczny, zautomatyzowany dostęp bez konieczności polegania na interaktywnym logowaniu. Aby uzyskać szczegółowe wskazówki, zobacz Jak uwierzytelniać aplikacje języka Python za pomocą usług platformy Azure.
Upewnij się, że jednostka usługi ma przypisaną rolę z wystarczającymi uprawnieniami do tworzenia grup zasobów i kont magazynowych. Na przykład przypisanie roli Współautor na poziomie subskrypcji zapewnia niezbędny dostęp. Aby dowiedzieć się więcej na temat przypisań ról, zobacz Kontrola dostępu oparta na rolach (RBAC) na platformie Azure.
Linki referencyjne dla klas używanych w kodzie
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
5. Uruchamianie skryptu
Jeśli jeszcze tego nie zrobiono, zaloguj się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure:
az login
Uruchom skrypt:
python provision_blob.py
Wykonanie skryptu trwa minutę lub dwie.
6. Weryfikowanie zasobów
Otwórz portal Azure aby sprawdzić, czy grupa zasobów i konto magazynu zostały utworzone zgodnie z oczekiwaniami. Może być konieczne odczekać minutę, a także wybrać pozycję Pokaż ukryte typy w grupie zasobów.
Wybierz konto magazynu, a następnie w menu po lewej stronie wybierz Magazyn danych>Kontenery, aby sprawdzić, czy "blob-container-01" jest widoczny.
Jeśli chcesz spróbować użyć tych zasobów z poziomu kodu aplikacji, przejdź do artykułu Przykład: Korzystanie z usługi Azure Storage.
Aby zapoznać się z innym przykładem korzystania z biblioteki zarządzania usługi Azure Storage, zobacz przykład Zarządzanie usługą Python Storage.
7. Czyszczenie zasobów
Pozostaw zasoby w miejscu, jeśli chcesz postępować zgodnie z artykułem Przykład: Użyj usługi Azure Storage , aby użyć tych zasobów w kodzie aplikacji. W przeciwnym razie uruchom polecenie az group delete , jeśli nie musisz przechowywać grupy zasobów i zasobów magazynu utworzonych w tym przykładzie.
Grupy zasobów nie generują żadnych bieżących opłat w ramach subskrypcji, ale zasoby, takie jak konta magazynu, w grupie zasobów mogą powodować naliczanie opłat. Dobrym rozwiązaniem jest wyczyszczenie każdej grupy, której nie używasz aktywnie. Argument --no-wait
umożliwia polecenie natychmiastowego zwrócenia zamiast oczekiwania na zakończenie operacji.
#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait
W celach informacyjnych: równoważne polecenia Azure CLI
Następujące polecenia interfejsu wiersza polecenia platformy Azure umożliwiają wykonanie tych samych kroków tworzenia co skrypt języka Python:
#!/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
Zobacz także
- Przykład: korzystanie z usługi Azure Storage
- Przykład: tworzenie grupy zasobów
- Przykład: Wyświetlanie listy grup zasobów w subskrypcji
- Przykład: Utwórz aplikację internetową i wdrażaj kod
- Przykład: tworzenie bazy danych i wykonywanie względem jej zapytań
- Przykład: tworzenie maszyny wirtualnej
- Używaj zarządzanych dysków Azure z maszynami wirtualnymi
- Wykonaj krótką ankietę dotyczącą zestawu Azure SDK dla języka Python