Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Depolama hesabı ve Blob depolama kapsayıcısı ile birlikte bir kaynak grubu oluşturmak üzere Python için Azure yönetim kitaplıklarını kullanmayı öğreneceksiniz.
Bu kaynakları sağladıktan sonra Örnek: Blob kapsayıcısına dosya yüklemek için Python'daki Azure istemci kitaplıklarının nasıl kullanılacağını görmek için Azure Depolama'yı kullanma bölümüne bakın.
Bash ve PowerShell için Eşdeğer Azure CLI komutları bu makalenin devamında listelenmiştir. Azure portalını kullanmayı tercih ediyorsanız bkz. Azure depolama hesabı oluşturma ve Blob kapsayıcısı oluşturma.
1: Yerel geliştirme ortamınızı ayarlama
Henüz yapmadıysanız kodu çalıştırabileceğiniz bir ortam ayarlayın. Aşağıda bazı seçenekleri görebilirsiniz:
venvveya seçtiğiniz aracı kullanarak bir Python sanal ortamı yapılandırın. Sanal ortamı kullanmaya başlamak için etkinleştirmeyi unutmayın. Python'ı yüklemek için bkz. Python'ı yükleme.#!/bin/bash # Create a virtual environment python -m venv .venv # Activate the virtual environment source .venv/Scripts/activate # only required for Windows (Git Bash)Conda ortamı kullanın. Conda'yı yüklemek için bkz. Miniconda'yı yükleme.
Visual Studio Code veya GitHub Codespaces'taGeliştirme Kapsayıcısı kullanın.
2: Gerekli Azure kitaplık paketlerini yükleme
Konsolunuzda, bu örnekte kullanılan yönetim kitaplıklarını listeleyen bir requirements.txt dosyası oluşturun:
azure-mgmt-resource azure-mgmt-storage azure-identitySanal ortamın etkinleştirildiği konsolunuzda gereksinimleri yükleyin:
pip install -r requirements.txt
3. Ortam değişkenlerini ayarlama
Bu adımda, bu makaledeki kodda kullanılacak ortam değişkenlerini ayarlarsınız. Kod, değerleri almak için yöntemini kullanır os.environ .
#!/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: Depolama hesabı ve blob kapsayıcısı oluşturmak için kod yazma
Bu adımda, aşağıdaki kodla provision_blob.py adlı bir Python dosyası oluşturursunuz. Bu Python betiği, Python için Azure SDK yönetim kitaplıklarını kullanarak bir kaynak grubu, Azure Depolama hesabı ve Blob kapsayıcı oluşturur.
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}")
Kodda kimlik doğrulaması
Bu makalenin devamında, örnek kodu yürütmek için Azure CLI kullanarak Azure'da oturum açarsınız. Hesabınız Azure aboneliğinizde kaynak grupları ve depolama kaynakları oluşturmak için yeterli izinlere sahipse, betik ek yapılandırma olmadan başarıyla çalıştırılmalıdır.
Bu kodu üretim ortamında kullanmak için, ortam değişkenlerini ayarlayarak hizmet sorumlusu kullanarak kimlik doğrulaması oluşturun. Bu yaklaşım, etkileşimli oturum açma bilgilerine bağlı kalmadan güvenli, otomatik erişim sağlar. Ayrıntılı yönergeler için bkz. Azure hizmetleriyle Python uygulamalarının kimliğini doğrulama.
Hizmet sorumlusuna kaynak grupları ve depolama hesapları oluşturmak için yeterli izinlere sahip bir rol atandığından emin olun. Örneğin, Abonelik düzeyinde Katkıda Bulunan rolü atamak gerekli erişimi sağlar. Rol atamaları hakkında daha fazla bilgi edinmek için bkz. Azure'da rol tabanlı erişim denetimi (RBAC).
Kodda kullanılan sınıflar için başvuru bağlantıları
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
5. Betiği çalıştır
Henüz yapmadıysanız Azure CLI kullanarak Azure'da oturum açın:
az login
Betiği Çalıştırın:
python provision_blob.pyKomut dosyasının tamamlanması bir veya iki dakika sürer.
6: Kaynakları doğrulama
Kaynak grubunun ve depolama hesabının beklendiği gibi oluşturulduğunu doğrulamak için Azure portalını açın. Bir dakika beklemeniz ve ayrıca Kaynak grubunda gizli türleri göster'i seçmeniz gerekebilir.
Depolama hesabını seçin ve ardından sol taraftaki menüden Veri depolama>Kapsayıcıları'nı seçerek "blob-container-01" öğesinin göründüğünü doğrulayın:
Bu kaynakları uygulama kodundan kullanmayı denemek istiyorsanız Örnek: Azure Depolama'yı kullanma ile devam edin.
Azure Depolama yönetim kitaplığını kullanmanın başka bir örneği için bkz. Python Depolamayı Yönetme örneği.
7: Kaynakları temizleme
Örnek: Bu kaynakları uygulama kodunda kullanmak için Azure Depolama'yı kullanma makalesini izlemek istiyorsanız kaynakları yerinde bırakın. Aksi takdirde, bu örnekte oluşturulan kaynak grubunu ve depolama kaynaklarını tutmanız gerekmiyorsa az group delete komutunu çalıştırın.
Kaynak grupları aboneliğinizde devam eden ücret ödemez, ancak kaynak grubundaki depolama hesapları gibi kaynaklar ücrete tabi olabilir. Etkin olarak kullanmadığınız tüm grupları temizlemek iyi bir uygulamadır.
--no-wait bağımsız değişkeni, işlemin bitmesini beklemek yerine komutun hemen geri dönmesini sağlar.
#!/bin/bash
az group delete -n $AZURE_RESOURCE_GROUP_NAME --no-wait
Referans için: eşdeğer Azure CLI komutları
Aşağıdaki Azure CLI komutları, Python betiğiyle aynı oluşturma adımlarını tamamlar:
#!/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
Ayrıca bakınız
- Örnek: Azure Depolama'yı kullanma
- Örnek: Kaynak Grubu Oluştur
- Örnek: Abonelikteki kaynak gruplarını listeleme
- Örnek: Web uygulaması oluşturma ve kod dağıtma
- Örnek: Veritabanı oluşturma ve sorgulama
- Örnek: Sanal makine oluşturma
- Azure Yönetilen Disklerini sanal makinelerle kullanma
- Python için Azure SDK hakkında kısa bir anket tamamlama