Megosztás a következőn keresztül:


Példa: Azure Storage létrehozása a Pythonhoz készült Azure-kódtárak használatával

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:

2: A szükséges Azure-kódtárcsomagok telepítése

  1. 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-identity
    
  2. Az 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 az Azure SDK for Python felügyeleti kódtárakat használja erőforráscsoport, Azure Storage-fiók és Blob-tároló létrehozásához a Pythonhoz készült Azure SDK használatával.

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}")

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 az erőforráscsoportok és a tárerőforrások Azure-előfizetésben való létrehozásához, a szkriptnek további konfiguráció nélkül kell sikeresen futnia.

Ha termelési környezetben szeretné használni a kódot, hitelesítsen egy szolgáltatás felelőssel a környezeti változók beállításával. Ez a megközelítés interaktív bejelentkezés nélkül teszi lehetővé a biztonságos, automatizált hozzáférést. 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.

5. Futtassa a szkriptet

  1. Ha még nem tette meg, jelentkezzen be az Azure-ba az Azure CLI használatával:

    az login
    

  2. Futtassa a szkriptet:

    python provision_blob.py
    

    A szkript végrehajtása egy-két percet vesz igénybe.

6: Az erőforrások ellenőrzése

  1. 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, és válassza a Rejtett típusok megjelenítése lehetőséget az erőforráscsoportban.

    Az új erőforráscsoport Azure Portal-oldala, amelyen a tárfiók látható

  2. Válassza ki a tárfiókot, majd válassza a bal oldali menü Adattárolók> elemét annak ellenőrzéséhez, hogy a "blob-container-01" megjelenik-e:

    A blobtárolót megjelenítő tárfiók Azure Portal-oldala

  3. 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

Hagyja a helyén az erőforrásokat, ha a következő cikket szeretné követni : Az Azure Storage használatával ezeket az erőforrásokat alkalmazáskódban használhatja. Ellenkező esetben futtassa az az group delete parancsot, ha nem kell megtartania az ebben 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. Jó gyakorlat minden olyan csoportot eltávolítani, amelyet 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
#!/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

Lásd még