Mengelola kontainer blob menggunakan Azure CLI
Penyimpanan Microsoft Azure Blob Storage memungkinkan Anda untuk menyimpan data objek tidak terstruktur dalam jumlah besar. Anda dapat menggunakan penyimpanan blob untuk mengumpulkan atau mengekspos data media, konten, atau aplikasi kepada pengguna. Karena semua data blob disimpan dalam kontainer, maka Anda harus membuat kontainer penyimpanan sebelum mulai mengunggah data. Untuk mempelajari penyimpanan blob lebih lanjut, baca Pengantar penyimpanan Azure Blob.
Azure CLI adalah pengalaman baris perintah lintas platform Azure untuk mengelola sumber daya Azure. Anda dapat menggunakannya di browser Anda dengan Azure Cloud Shell. Anda juga dapat menginstalnya di macOS, Linux, atau Windows, dan menjalankannya secara lokal dari baris perintah.
Pada artikel panduan ini, Anda akan mempelajari cara menggunakan Azure CLI dengan Bash untuk bekerja dengan objek kontainer.
Prasyarat
Untuk mengakses Azure Storage, Anda perlu berlangganan Azure. Jika Anda belum berlangganan, buat akun gratis sebelum memulai.
Semua akses ke Azure Storage dilakukan melalui akun penyimpanan. Untuk mulai cepat ini, Anda dapat membuat akun penyimpanan menggunakan portal Azure, Azure PowerShell, atau Azure CLI. Untuk bantuan membuat akun penyimpanan, lihat Membuat akun penyimpanan.
Persiapkan lingkungan Anda untuk Azure CLI
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
- Sebaiknya Anda menginstal versi terbaru Azure CLI. Jika menggunakan Azure Cloud Shell, versi terbaru sudah terinstal.
Izinkan akses ke penyimpanan Blob
Anda dapat mengotorisasi akses ke penyimpanan Blob dari Azure CLI baik dengan kredensial Microsoft Entra atau dengan menggunakan kunci akses akun penyimpanan. Menggunakan kredensial Microsoft Entra disarankan, dan contoh artikel ini menggunakan ID Microsoft Entra secara eksklusif.
Perintah Azure CLI untuk operasi data terhadap penyimpanan Blob mendukung --auth-mode
parameter, yang memungkinkan Anda menentukan cara memberi izin operasi tertentu. Atur --auth-mode
parameter ke login
untuk mengotorisasi dengan kredensial Microsoft Entra. Untuk informasi selengkapnya, lihat Izin akses ke data blob atau antrean dengan Azure CLI.
Jalankan perintah login
untuk membuka browser dan menyambungkan ke langganan Azure Anda.
az login
Membuat kontainer
Untuk membuat kontainer dengan Azure CLI, panggil perintah az storage container create. Contoh berikut mengilustrasikan tiga opsi untuk pembuatan kontainer blob dengan perintah az storage container create
. Cara pertama menghasilkan satu kontainer, sementara dua cara lain menggunakan operasi Bash untuk mengotomatisasi pembuatan kontainer.
Untuk menggunakan contoh ini, berikan nilai pada variabel dan pastikan bahwa Anda masuk. Ingatlah untuk mengganti nilai tempat penampung dalam tanda kurung dengan nilai Anda sendiri.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Approach 1: Create a container
az storage container create \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Approach 2: Create containers with a loop
for value in {2..5}
do
az storage container create \
--name $containerPrefix$value \
--account-name $storageAccount \
--auth-mode login
done
# Approach 3: Create containers by splitting multiple values
containerList="${containerPrefix}6 ${containerPrefix}7 ${containerPrefix}8"
for container in $containerList
do
az storage container create \
--name $container \
--account-name $storageAccount \
--auth-mode login
done
Mencantumkan kontainer
Gunakan perintah az storage container list
untuk mengambil daftar kontainer penyimpanan. Untuk menampilkan daftar kontainer yang namanya dimulai dengan string karakter tertentu, teruskan string yang dimaksud sebagai nilai parameter --prefix
.
Parameter --num-results
dapat digunakan untuk membatasi jumlah kontainer yang ditampilkan oleh permintaan. Azure Storage membatasi jumlah kontainer yang ditampilkan oleh operasi daftar tunggal hingga 5000. Batas ini memastikan bahwa jumlah data yang dapat dikelola bisa diambil. Jika jumlah kontainer yang ditampilkan melebihi nilai --num-results
atau batas layanan, token kelanjutan akan ditampilkan. Token ini memungkinkan Anda untuk menggunakan beberapa permintaan untuk mengambil kontainer dengan jumlah berapa pun.
Anda juga dapat menggunakan parameter --query
untuk menjalankan kueri JMESPath pada hasil perintah. JMESPath adalah bahasa kueri untuk JSON yang memungkinkan Anda memilih dan mengubah data yang ditampilkan dari output CLI. Kueri dijalankan di output JSON sebelum bisa diformat. Untuk informasi selengkapnya, lihat Cara membuat kueri output perintah Azure CLI menggunakan kueri JMESPath.
Contoh berikut ini pertama-tama mencantumkan jumlah maksimum kontainer (sesuai batas layanan). Berikutnya, mencantumkan tiga kontainer yang namanya memiliki prefiks container- dengan memasukkan nilai untuk parameter --num-results
dan --prefix
. Terakhir, satu kontainer dicantumkan dengan memasukkan nama kontainer yang diketahui untuk parameter --prefix
.
Baca selengkapnya tentang daftar kontainer penyimpanan az.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"
numResults="3"
# Approach 1: List maximum containers
az storage container list \
--account-name $storageAccount \
--auth-mode login
# Approach 2: List a defined number of named containers
az storage container list \
--prefix $containerPrefix \
--num-results $numResults \
--account-name $storageAccount \
--auth-mode login
# Approach 3: List an individual container
az storage container list \
--prefix $containerPrefix \
--query "[?name=='$containerName']" \
--account-name $storageAccount \
--auth-mode login
Membaca properti dan metadata kontainer
Kontainer memperlihatkan baik properti sistem dan metadata yang ditentukan pengguna. Terdapat properti sistem di setiap sumber daya penyimpanan blob. Beberapa properti bersifat baca-saja, sementara yang lain bisa dibaca atau diatur. Dibalik itu, beberapa properti sistem memetakan ke header HTTP standar tertentu.
Metadata yang ditentukan pengguna terdiri dari satu atau beberapa pasangan nama-nilai yang Anda tentukan untuk sumber daya penyimpanan blob. Anda dapat menggunakan metadata untuk menyimpan nilai tambahan dengan sumber daya. Nilai metadata hanya untuk tujuan Anda sendiri, dan tidak memengaruhi perilaku sumber daya.
Properti kontainer
Untuk menampilkan properti kontainer dengan Azure CLI, panggil perintah az storage container show.
Dalam contoh berikut ini, cara pertama menampilkan properti dari kontainer bernama tunggal. Berikutnya, cara ini mengambil semua kontainer yang memiliki prefiks demo-container- dan mengulanginya sekaligus mencantumkan properti kontainer tersebut. Ingatlah untuk mengganti nilai tempat penampung dengan nilai Anda sendiri.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
containerName="demo-container-1"
# Show a named container's properties
az storage container show \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# List several containers and show their properties
containerList=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
for row in $containerList
do
tmpRow=$(echo $row | sed -e 's/\r//g')
az storage container show --name $tmpRow --account-name $storageAccount --auth-mode login
done
Metadata kontainer baca dan tulis
Pengguna yang memiliki ribuan objek dalam akun penyimpanan mereka dapat dengan cepat menemukan kontainer tertentu berdasarkan metadatanya. Untuk membaca metadata, Anda akan menggunakan perintah az storage container metadata show
. Untuk memperbarui metadata, Anda harus menggunakan perintah az storage container metadata update
. Metode ini hanya menerima pasangan nilai kunci yang dipisahkan spasi. Untuk informasi selengkapnya, lihat dokumentasi metadata kontainer penyimpanan az.
Contoh pertama di bawah memperbarui kemudian mengambil metadata kontainer bernama. Contoh kedua mengulangi daftar kontainer yang cocok dengan nilai -prefix
. Kontainer dengan nama yang berisi angka genap memiliki metadata yang diatur dengan nilai yang terdapat di variabel metadata.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Create metadata string
metadata="key=value pie=delicious"
# Update named container metadata
az storage container metadata update \
--name $containerName \
--metadata $metadata \
--account-name $storageAccount \
--auth-mode login
# Display metadata
az storage container metadata show \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Get list of containers
containerList=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
# Update and display metadata
for row in $containerList
do
#Get the container's number
tmpName=$(echo $row | sed -e 's/\r//g')
if [ `expr ${tmpName: ${#containerPrefix}} % 2` == 0 ]
then
az storage container metadata update \
--name $tmpName \
--metadata $metadata \
--account-name $storageAccount \
--auth-mode login
echo $tmpName
az storage container metadata show \
--name $tmpName \
--account-name $storageAccount \
--auth-mode login
fi
done
Menghapus kontainer
Bergantung pada kasus penggunaan, Anda dapat menghapus satu atau sekelompok kontainer menggunakan perintah az storage container delete
. Saat menghapus daftar kontainer, Anda harus menggunakan operasi kondisional seperti yang ditampilkan pada contoh di bawah ini.
Peringatan
Menjalankan contoh berikut dapat menghapus kontainer dan blob secara permanen. Microsoft merekomendasikan Anda mengaktifkan penghapusan sementara kontainer untuk melindungi kontainer dan blob dari penghapusan yang tidak disengaja. Untuk informasi selengkapnya, lihat Penghapusan sementara untuk kontainer.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
containerPrefix="demo-container-"
# Delete a single named container
az storage container delete \
--name $containerName \
--account-name $storageAccount \
--auth-mode login
# Delete containers by iterating a loop
list=$(az storage container list \
--query "[].name" \
--prefix $containerPrefix \
--account-name $storageAccount \
--auth-mode login \
--output tsv)
for row in $list
do
tmpName=$(echo $row | sed -e 's/\r//g')
az storage container delete \
--name $tmpName \
--account-name $storageAccount \
--auth-mode login
done
Jika penghapusan sementara kontainer diaktifkan untuk akun penyimpanan, Anda dapat mengambil kontainer yang telah dihapus. Jika opsi proteksi data penghapusan sementara akun penyimpanan Anda diaktifkan, maka parameter --include-deleted
akan menampilkan kontainer yang telah dihapus dalam periode retensi terkait. Parameter --include-deleted
hanya bisa digunakan untuk mengembalikan kontainer saat digunakan dengan parameter --prefix
. Untuk mempelajari penghapusan sementara lebih lanjut, lihat artikel Penghapusan sementara kontainer.
Gunakan contoh berikut untuk mengambil daftar kontainer yang telah dihapus dalam periode retensi yang terkait dengan akun penyimpanan.
#!/bin/bash
storageAccount="<storage-account>"
containerPrefix="demo-container-"
# Retrieve a list of containers including those recently deleted
az storage container list \
--prefix $containerPrefix \
--include-deleted \
--account-name $storageAccount\
--auth-mode login
Memulihkan kontainer yang dihapus sementara
Seperti yang telah disebutkan di Mencantumkan kontainer, Anda dapat mengonfigurasi opsi proteksi data penghapusan sementara pada akun penyimpanan Anda. Jika diaktifkan, kontainer yang telah dihapus dalam periode retensi terkait dapat dipulihkan. Sebelum dapat mengikuti contoh ini, Anda perlu mengaktifkan penghapusan sementara dan mengonfigurasinya di setidaknya salah satu akun penyimpanan Anda.
Contoh berikut menjelaskan cara memulihkan kontainer yang telah dihapus sementara menggunakan perintah az storage container restore
. Anda harus menyediakan nilai bagi parameter --name
dan --version
untuk memastikan bahwa versi kontainer yang benar dipulihkan. Jika tidak mengetahui nomor versinya, Anda bisa menggunakan perintah az storage container list
untuk mengambilnya seperti yang ditampilkan di contoh pertama. Contoh kedua menemukan dan memulihkan semua kontainer yang dihapus dalam akun penyimpanan tertentu.
Untuk mempelajari opsi proteksi data penghapusan sementara lebih lanjut, lihat artikel Penghapusan sementara kontainer.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
# Restore an individual named container
containerVersion=$(az storage container list \
--account-name $storageAccount \
--query "[?name=='$containerName'].[version]" \
--auth-mode login \
--output tsv \
--include-deleted | sed -e 's/\r//g')
az storage container restore \
--name $containerName \
--deleted-version $containerVersion \
--account-name $storageAccount \
--auth-mode login
# Restore a list of deleted containers
containerList=$(az storage container list \
--account-name $storageAccount \
--include-deleted \
--auth-mode login \
--query "[?deleted].{name:name,version:version}" \
-o json)
for row in $(echo "${containerList}" | jq -c '.[]' )
do
tmpName=$(echo $row | jq -r '.name')
tmpVersion=$(echo $row | jq -r '.version')
az storage container restore \
--account-name $storageAccount \
--name $tmpName \
--deleted-version $tmpVersion \
--auth-mode login
done
Mendapatkan tanda tangan akses bersama untuk kontainer
Tanda tangan akses bersama (SAS) memberikan akses yang didelegasikan ke sumber daya Azure. SAS memberikan Anda kontrol terperinci mengenai bagaimana klien dapat mengakses data Anda. Misalnya, Anda dapat menentukan sumber daya mana yang akan tersedia untuk klien. Anda juga dapat membatasi jenis operasi yang dapat dilakukan oleh klien, dan menentukan interval validitas SAS.
SAS umumnya digunakan untuk menyediakan akses sementara dan aman kepada klien yang biasanya tidak memiliki izin. Untuk menghasilkan SAS layanan atau akun, Anda harus menyediakan nilai untuk parameter --account-name
dan --account-key
. Contoh skenario ini adalah layanan yang memungkinkan pengguna untuk membaca dan menulis data mereka sendiri ke akun penyimpanan Anda.
Azure Storage mendukung tiga jenis tanda tangan akses bersama: delegasi pengguna, layanan, dan SAS akun. Untuk informasi selengkapnya tentang tanda tangan akses bersama, lihat artikel Memberikan akses terbatas ke sumber daya Azure Storage menggunakan tanda tangan akses bersama (SAS).
Perhatian
Setiap klien yang memiliki SAS yang valid dapat mengakses data di akun penyimpanan Anda sebagaimana diizinkan oleh SAS tersebut. Penting untuk melindungi SAS dari penggunaan berbahaya atau tidak diinginkan. Gunakan kebijaksanaan dalam mendistribusikan SAS, dan memiliki rencana untuk mencabut SAS yang disusupi.
Contoh berikut ini menggambarkan proses konfigurasi layanan SAS untuk kontainer tertentu dengan menggunakan perintah az storage container generate-sas
. Karena menghasilkan SAS layanan, contoh ini pertama-tama mengambil kunci akun penyimpanan untuk meneruskannya sebagai nilai --account-key
.
Contohnya akan mengonfigurasi SAS dengan waktu mulai dan berakhir serta sebuah protokol. Contoh ini juga akan menentukan izin hapus, baca, tulis, dan buat daftar di SAS dengan menggunakan parameter --permissions
. Anda dapat merujuk ke tabel lengkap izin dalam artikel Membuat SAS layanan.
Salin dan tempelkan nilai token SAS Blob di lokasi yang aman. Nilai token ini hanya akan ditampilkan sekali saja dan tidak dapat diambil setelah Bash ditutup. Untuk membuat URL SAS, tambahkan token SAS (URI) ke URL untuk layanan penyimpanan.
#!/bin/bash
storageAccount="<storage-account>"
containerName="demo-container-1"
permissions="drwl"
expiry=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
accountKey=$(az storage account keys list \
--account-name $storageAccount \
--query "[?permissions == 'FULL'].[value]" \
--output tsv)
accountKey=$( echo $accountKey | cut -d' ' -f1 )
az storage container generate-sas \
--name $containerName \
--https-only \
--permissions dlrw \
--expiry $expiry \
--account-key $accountKey \
--account-name $storageAccount
Catatan
Token SAS yang dikembalikan oleh Azure CLI tidak menyertakan karakter pemisah ('?') untuk string kueri URL. Jika Anda menambahkan token SAS ke URL sumber daya, ingatlah untuk menambahkan karakter pemisah ke URL sumber daya sebelum menambahkan token SAS.
Langkah berikutnya
Dalam artikel panduan ini, Anda mempelajari cara mengelola kontainer di Blob Storage. Untuk mempelajari selengkapnya tentang bekerja dengan penyimpanan blob menggunakan Azure CLI, pilih opsi di bawah ini.