Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebből a cikkből megtudhatja, hogyan hozhat létre erőforráscsoportot a Python Azure felügyeleti kódtáraival, valamint egy Azure Storage-fiókot és egy Blob Storage-tárolót.
Az erőforrások kiépítése után tekintse meg a Példa: Az Azure Storage használatának példáját, hogy lássa, hogyan tölthet fel egy fájlt a Blob-tárolóba az Azure-ügyfélkönyvtárak Pythonban történő használatával.
A bash és a PowerShell egyenértékű Azure CLI-parancsait a cikk későbbi részében találja. Ha inkább az Azure Portalt szeretné használni, olvassa el az Azure Storage-fiók létrehozása és a blobtároló létrehozása című témakört.
1: A helyi fejlesztési környezet beállítása
Ha még nem tette meg, hozzon létre egy környezetet, ahol futtathatja a kódot. Íme néhány lehetőség:
Python virtuális környezetet konfiguráljon a
venvhasználatával vagy az Ön által választott eszközzel. A virtuális környezet használatának megkezdéséhez feltétlenül aktiválja azt. A Python telepítéséhez lásd a Python telepítését.#!/bin/bash # Create a virtual environment python -m venv .venv # Activate the virtual environment source .venv/Scripts/activate # only required for Windows (Git Bash)Használjon conda környezetet. A Conda telepítéséhez lásd a Miniconda telepítése című témakört.
Használjon Dev-tárolót a Visual Studio Code-ban vagy a GitHub Codespace-ben.
2: A szükséges Azure-kódtárcsomagok telepítése
A konzolon hozzon létre egy requirements.txt fájlt, amely felsorolja a példában használt felügyeleti kódtárakat:
azure-mgmt-resource azure-mgmt-storage azure-identityAz aktivált virtuális környezettel rendelkező konzolon telepítse a követelményeket:
pip install -r requirements.txt
3. Környezeti változók beállítása
Ebben a lépésben környezeti változókat állít be a jelen cikkben szereplő kódban való használatra. A kód a os.environ metódust használja az értékek lekérésére.
#!/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: Kód írása tárfiók és blobtároló létrehozásához
Ebben a lépésben egy provision_blob.py nevű Python-fájlt hoz létre a következő kóddal. Ez a Python szkript a Python felügyeleti kódtárak Azure SDK használatával hoz létre erőforráscsoportot, Azure Storage fiókot és Blob-tárolót.
import os
# Import the needed credential and management objects from the 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: Create a resource group:
# https://learn.microsoft.com/azure/developer/python/sdk/examples/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, "type": "Microsoft.Storage/storageAccounts" }
)
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("Retrieved the primary key for the storage account")
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}")
Hitelesítés a kódban
A cikk későbbi részében az Azure CLI használatával jelentkezik be az Azure-ba a mintakód végrehajtásához. Ha a fiókja rendelkezik megfelelő engedélyekkel ahhoz, hogy erőforráscsoportokat és tárerőforrásokat hozzon létre a Azure-előfizetésben, a szkript további konfiguráció nélkül sikeresen lefut.
A kód éles környezetben történő használatához hitelesítsen szolgáltatásnév használatával, és állítsa be a környezeti változókat. Ez a megközelítés lehetővé teszi a biztonságos, automatizált hozzáférést anélkül, hogy interaktív bejelentkezésre támaszkodik. Részletes útmutatásért tekintse meg a Python-alkalmazások Azure-szolgáltatásokkal való hitelesítését ismertető témakört.
Győződjön meg arról, hogy a szolgáltatási fiókhoz olyan szerepkör van hozzárendelve, amely elegendő engedéllyel rendelkezik az erőforráscsoportok és tárfiókok létrehozásához. Például a közreműködői szerepkör előfizetési szinten való hozzárendelése biztosítja a szükséges hozzáférést. A szerepkör-hozzárendelésekkel kapcsolatos további információkért lásd: Szerepköralapú hozzáférés-vezérlés (RBAC) az Azure-ban.
A kódban használt osztályok hivatkozásai
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
5. Futtassa a szkriptet
Ha még nem tette meg, jelentkezzen be a Azure a Azure CLI használatával:
az login
Futtassa a szkriptet:
python provision_blob.pyA szkript végrehajtása egy-két percet vesz igénybe.
6: Az erőforrások ellenőrzése
Nyissa meg az Azure Portalt annak ellenőrzéséhez, hogy az erőforráscsoport és a tárfiók a várt módon lett-e létrehozva. Előfordulhat, hogy várnia kell egy percet, majd frissítenie kell az erőforráscsoport nézetét.
Válassza ki a tárfiókot, majd a bal oldali menüBen válassza az Adattárolók> lehetőséget annak ellenőrzéséhez, hogy megjelenik-e a létrehozott tároló:
Ha az alkalmazáskódból szeretné használni ezeket az erőforrásokat, folytassa a következő példával: Azure Storage használata.
Az Azure Storage felügyeleti kódtárának használatára egy másik példát a Python Storage-minta kezelése című témakörben talál.
7: Erőforrások törlése
Ha ezeket az erőforrásokat az alkalmazáskódban szeretné használni, kövesse a Example: Azure Storage című cikket. Ellenkező esetben futtassa az az group delete parancsot, ha nem kell megtartania a példában létrehozott erőforráscsoportot és tárerőforrásokat.
Az erőforráscsoportok nem számolnak fel folyamatos díjakat az előfizetésben, de az erőforráscsoportban lévő erőforrások, például a tárfiókok díjakat vonhatnak maga után. Célszerű törölni azokat az erőforráscsoportokat, amelyeket nem használ aktívan. Az --no-wait argumentum lehetővé teszi, hogy a parancs azonnal visszatérjen a művelet befejezésére való várakozás helyett.
#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait
Hivatkozás: egyenértékű Azure CLI-parancsok
Az alábbi Azure CLI-parancsok ugyanazokat a létrehozási lépéseket hajtják végre, mint a Python-szkript:
#!/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 \
--resource-group "$AZURE_RESOURCE_GROUP_NAME" \
--location "$LOCATION" \
--name "$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 \
--resource-group "$AZURE_RESOURCE_GROUP_NAME" \
--name "$STORAGE_ACCOUNT_NAME" \
--query connectionString \
--output tsv)
# Provision the blob container
az storage container create \
--name "$CONTAINER_NAME" \
--account-name "$STORAGE_ACCOUNT_NAME" \
--connection-string "$CONNECTION_STRING"
Lásd még
- Példa: Az Azure Storage használata
- Példa: Erőforráscsoport létrehozása
- Példa: Erőforráscsoportok listázása előfizetésben
- Példa: Webalkalmazás létrehozása és kód üzembe helyezése
- Példa: Adatbázis létrehozása és lekérdezése
- Példa: Virtuális gép létrehozása
- Azure Managed Disks használata virtuális gépekkel
- Végezzen el egy rövid felmérést a Pythonhoz készült Azure SDK-ról