Contoh: Membuat Azure Storage menggunakan pustaka Azure untuk Python
Dalam artikel ini, Anda mempelajari cara menggunakan pustaka manajemen Azure dalam skrip Python untuk membuat grup sumber daya yang berisi akun Azure Storage dan kontainer penyimpanan Blob.
Setelah membuat sumber daya, lihat Contoh: Menggunakan Azure Storage untuk menggunakan pustaka klien Azure di kode aplikasi Python untuk mengunggah file ke kontainer penyimpanan Blob.
Semua perintah dalam artikel ini bekerja secara sama di bash Linux/macOS dan shell perintah Windows kecuali ada catatan.
Perintah Azure CLI yang setara dicantumkan nanti di artikel ini. Jika Anda lebih suka menggunakan portal Azure, lihat Membuat akun penyimpanan Azure dan Membuat kontainer blob.
1: Siapkan lingkungan pengembangan lokal Anda
Jika Anda belum melakukannya, siapkan lingkungan tempat Anda dapat menjalankan kode. Berikut ini adalah beberapa opsi:
Mengonfigurasi lingkungan virtual Python. Anda dapat membuat lingkungan virtual secara lokal atau di Azure Cloud Shell dan menjalankan kode di sana. Pastikan untuk mengaktifkan lingkungan virtual untuk mulai menggunakannya.
Gunakan lingkungan conda.
Gunakan Kontainer Dev di Visual Studio Code atau GitHub Codespaces.
2: Instal paket pustaka Azure yang diperlukan
Buat file requirements.txt yang mencantumkan pustaka manajemen yang digunakan dalam contoh ini:
azure-mgmt-resource azure-mgmt-storage azure-identity
Di terminal Anda dengan lingkungan virtual diaktifkan, instal persyaratan:
pip install -r requirements.txt
3: Menulis kode untuk membuat sumber daya penyimpanan
Buat file Python bernama provision_blob.py dengan kode berikut. Komentar akan menjelaskan detailnya. Skrip membaca ID langganan Anda dari variabel lingkungan, AZURE_SUBSCRIPTION_ID
. Anda mengatur variabel ini di langkah selanjutnya. Nama grup sumber daya, lokasi, nama akun penyimpanan, dan nama kontainer semuanya didefinisikan sebagai konstanta dalam kode.
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
# Acquire a credential object.
credential = DefaultAzureCredential()
# Retrieve subscription ID from environment variable.
subscription_id = os.environ["AZURE_SUBSCRIPTION_ID"]
# Obtain the management object for resources.
resource_client = ResourceManagementClient(credential, subscription_id)
# Constants we need in multiple places: the resource group name and the region
# in which we provision resources. You can change these values however you want.
RESOURCE_GROUP_NAME = "PythonAzureExample-Storage-rg"
LOCATION = "centralus"
# Step 1: Provision the resource group.
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 = f"pythonazurestorage{random.randint(1,100000):05}"
# You can replace the storage account here with any unique name. A random number is used
# by default, but note that the name changes every time you run this script.
# The name must be 3-24 lower case letters and numbers only.
# 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 = "blob-container-01"
container = storage_client.blob_containers.create(RESOURCE_GROUP_NAME, STORAGE_ACCOUNT_NAME, CONTAINER_NAME, {})
# The fourth argument is a required BlobContainer object, but because we don't need any
# special values there, so we just pass empty JSON.
print(f"Provisioned blob container {container.name}")
Autentikasi dalam kode
Kemudian dalam artikel ini, Anda masuk ke Azure dengan Azure CLI untuk menjalankan kode sampel. Jika akun Anda memiliki izin untuk membuat grup sumber daya dan sumber daya penyimpanan di langganan Azure Anda, kode akan berhasil dijalankan.
Untuk menggunakan kode tersebut dalam skrip produksi, Anda dapat mengatur variabel lingkungan untuk menggunakan metode berbasis perwakilan layanan untuk autentikasi. Untuk mempelajari selengkapnya, lihat Cara mengautentikasi aplikasi Python dengan layanan Azure. Anda perlu memastikan bahwa perwakilan layanan memiliki izin yang memadai untuk membuat grup sumber daya dan sumber daya penyimpanan dalam langganan Anda dengan menetapkan peran yang sesuai di Azure; misalnya, peran Kontributor pada langganan Anda.
Tautan referensi untuk kelas yang digunakan dalam kode ini
- DefaultAzureCredential (azure.identity)
- ResourceManagementClient (azure.mgmt.resource)
- StorageManagementClient (azure.mgmt.storage)
4. Jalankan skrip
Jika Anda belum melakukannya, masuk ke Azure menggunakan Azure CLI:
az login
Atur
AZURE_SUBSCRIPTION_ID
variabel lingkungan ke ID langganan Anda. (Anda dapat menjalankan perintah az account show dan mendapatkan ID langganan Anda dariid
properti dalam output):Jalankan skrip:
python provision_blob.py
Skrip akan memakan waktu satu atau dua menit untuk diselesaikan.
5: Verifikasi sumber daya
Buka portal Azure untuk memverifikasi bahwa grup sumber daya dan akun penyimpanan dibuat seperti yang diharapkan. Anda mungkin perlu menunggu sebentar dan juga memilih Tampilkan jenis tersembunyi di grup sumber daya.
Pilih akun penyimpanan, lalu pilih Penyimpanan data>Wadah di menu sebelah kiri untuk memverifikasi bahwa "blob-container-01" muncul:
Jika Anda ingin mencoba menggunakan sumber daya ini dari kode aplikasi, lanjutkan dengan Contoh: Gunakan Azure Storage.
Untuk contoh tambahan penggunaan perpustakaan manajemen Azure Storage, lihat Mengelola sampel Penyimpanan Python.
Untuk referensi: perintah Azure CLI yang setara
Perintah Azure CLI berikut menyelesaikan langkah-langkah pembuatan yang sama dengan skrip Python:
rem Provision the resource group
az group create ^
-n PythonAzureExample-Storage-rg ^
-l centralus
rem Provision the storage account
set account=pythonazurestorage%random%
echo Storage account name is %account%
az storage account create ^
-g PythonAzureExample-Storage-rg ^
-l centralus ^
-n %account% ^
--kind StorageV2 ^
--sku Standard_LRS
rem Retrieve the connection string
FOR /F %i IN ('az storage account show-connection-string -g PythonAzureExample-Storage-rg -n %account% --query connectionString') do (SET connstr=%i)
rem Provision the blob container
az storage container create ^
--name blob-container-01 ^
--account-name %account% ^
--connection-string %connstr%
6: Membersihkan sumber daya
Biarkan sumber daya di tempatnya jika Anda ingin mengikuti artikel Contoh: Gunakan Azure Storage untuk menggunakan sumber daya ini dalam kode aplikasi. Jika tidak, jalankan perintah az group delete jika Anda tidak perlu menyimpan grup sumber daya dan sumber daya penyimpanan yang dibuat dalam contoh ini.
Grup sumber daya tidak dikenakan biaya berkelanjutan dalam langganan Anda, tetapi sumber daya, seperti akun penyimpanan, dalam grup sumber daya mungkin dikenakan biaya. Ini adalah praktik yang baik untuk membersihkan grup apa pun yang tidak Anda gunakan secara aktif. Argumen --no-wait
memungkinkan perintah untuk segera kembali alih-alih menunggu operasi selesai.
az group delete -n PythonAzureExample-Storage-rg --no-wait
Anda juga dapat menggunakan metode ResourceManagementClient.resource_groups.begin_delete
untuk menghapus grup sumber daya dari kode. Kode dalam Contoh: Membuat grup sumber daya menunjukkan penggunaan.
Lihat juga
- Contoh: Menggunakan Azure Storage
- Contoh: Membuat grup sumber daya
- Contoh: Cantumkan grup sumber daya dalam langganan
- Contoh: Membuat aplikasi web dan menyebarkan kode
- Contoh: Membuat dan mengkueri database
- Contoh: Membuat komputer virtual
- Gunakan Azure Managed Disks dengan mesin virtual
- Menyelesaikan survei singkat tentang SDK Azure untuk Python
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk