Tutorial: Membuat pemasangan volume Azure Files di Azure Container Apps
Pelajari cara menulis ke penyimpanan permanen di aplikasi kontainer menggunakan pemasangan penyimpanan Azure Files. Untuk informasi selengkapnya tentang pemasangan penyimpanan, lihat Menggunakan pemasangan penyimpanan di Azure Container Apps.
Dalam tutorial ini, Anda akan mempelajari cara:
- Membuat lingkungan Aplikasi Kontainer
- Buat akun Azure Storage
- Menentukan berbagi file di akun penyimpanan
- Menautkan lingkungan ke berbagi file penyimpanan
- Memasang berbagi penyimpanan dalam kontainer individual
- Verifikasi pemasangan penyimpanan dengan melihat log akses situs web
Catatan
Azure Container Apps mendukung pemasangan berbagi file menggunakan protokol SMB dan NFS. Tutorial ini menunjukkan pemasangan berbagi Azure Files menggunakan protokol SMB. Untuk mempelajari selengkapnya tentang memasang berbagi NFS, lihat Menggunakan pemasangan penyimpanan di Azure Container Apps.
Prasyarat
- Instal versi terbaru Azure CLI.
Menyiapkan lingkungan
Perintah berikut membantu Anda menentukan variabel dan memastikan ekstensi Container Apps Anda sudah diperbarui.
Masuk ke Azure CLI.
az login
Siapkan variabel lingkungan yang digunakan dalam berbagai perintah untuk diikuti.
RESOURCE_GROUP="my-container-apps-group" ENVIRONMENT_NAME="my-storage-environment" LOCATION="canadacentral"
Pastikan Anda memiliki versi terbaru ekstensi Container Apps Azure CLI.
az extension add -n containerapp --upgrade
Daftarkan
Microsoft.App
namespace layanan.az provider register --namespace Microsoft.App
Daftarkan
Microsoft.OperationalInsights
penyedia untuk ruang kerja Analitik Log Azure Monitor jika Anda belum menggunakannya sebelumnya.az provider register --namespace Microsoft.OperationalInsights
Membuat lingkungan
Langkah-langkah berikut membuat grup sumber daya dan lingkungan Container Apps.
Buat grup sumber daya.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"
Setelah dibuat, perintah mengembalikan pesan "Berhasil".
Di akhir tutorial ini, Anda dapat menghapus grup sumber daya untuk menghapus semua layanan yang dibuat selama artikel ini.
Buat lingkungan Aplikasi Kontainer.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"
Setelah dibuat, perintah mengembalikan pesan "Berhasil".
Pemasangan penyimpanan dikaitkan dengan lingkungan Container Apps dan dikonfigurasi dalam aplikasi kontainer individual.
Menyiapkan akun penyimpanan
Selanjutnya, buat akun penyimpanan dan buat berbagi file untuk dipasang ke aplikasi kontainer.
Tentukan nama akun penyimpanan.
Perintah ini menghasilkan akhiran acak ke nama akun penyimpanan untuk memastikan keunikan.
STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
Membuat akun Azure Storage.
az storage account create \ --resource-group $RESOURCE_GROUP \ --name $STORAGE_ACCOUNT_NAME \ --location "$LOCATION" \ --kind StorageV2 \ --sku Standard_LRS \ --enable-large-file-share \ --query provisioningState
Setelah dibuat, perintah mengembalikan pesan "Berhasil".
Tentukan nama berbagi file.
STORAGE_SHARE_NAME="myfileshare"
Buat berbagi file Azure Storage.
az storage share-rm create \ --resource-group $RESOURCE_GROUP \ --storage-account $STORAGE_ACCOUNT_NAME \ --name $STORAGE_SHARE_NAME \ --quota 1024 \ --enabled-protocols SMB \ --output table
Dapatkan kunci akun penyimpanan.
STORAGE_ACCOUNT_KEY=`az storage account keys list -n $STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv`
Kunci akun penyimpanan diperlukan untuk membuat tautan penyimpanan di lingkungan Container Apps Anda.
Tentukan nama pemasangan penyimpanan.
STORAGE_MOUNT_NAME="mystoragemount"
Nilai ini adalah nama yang digunakan untuk menentukan tautan pemasangan penyimpanan dari lingkungan Container Apps Anda ke akun Azure Storage Anda.
Membuat pemasangan penyimpanan
Sekarang Anda dapat memperbarui konfigurasi aplikasi kontainer untuk mendukung pemasangan penyimpanan.
Buat tautan penyimpanan di lingkungan.
az containerapp env storage set \ --access-mode ReadWrite \ --azure-file-account-name $STORAGE_ACCOUNT_NAME \ --azure-file-account-key $STORAGE_ACCOUNT_KEY \ --azure-file-share-name $STORAGE_SHARE_NAME \ --storage-name $STORAGE_MOUNT_NAME \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --output table
Perintah ini membuat tautan antara lingkungan aplikasi kontainer dan berbagi file yang
az storage share-rm
dibuat dengan perintah .Sekarang setelah akun penyimpanan dan lingkungan ditautkan, Anda dapat membuat aplikasi kontainer yang menggunakan pemasangan penyimpanan.
Tentukan nama aplikasi kontainer.
CONTAINER_APP_NAME="my-container-app"
Buat aplikasi kontainer.
az containerapp create \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT_NAME \ --image nginx \ --min-replicas 1 \ --max-replicas 1 \ --target-port 80 \ --ingress external \ --query properties.configuration.ingress.fqdn
Perintah ini menampilkan URL aplikasi kontainer baru Anda.
Salin URL dan tempelkan ke browser web Anda untuk menavigasi ke situs web.
Setelah halaman dimuat, Anda akan melihat pesan "Selamat Datang di nginx!". Tetap buka tab browser ini. Anda akan kembali ke situs web selama langkah-langkah verifikasi pemasangan penyimpanan.
Setelah mengonfirmasi bahwa aplikasi kontainer dikonfigurasi, Anda dapat memperbarui aplikasi ke dengan definisi pemasangan penyimpanan.
Ekspor konfigurasi aplikasi kontainer.
az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --output yaml > app.yaml
Catatan
Meskipun aplikasi ini tidak memiliki rahasia, banyak aplikasi melakukan rahasia fitur. Secara default, saat Anda mengekspor konfigurasi aplikasi, nilai untuk rahasia tidak disertakan dalam YAML yang dihasilkan.
Jika Anda tidak perlu mengubah nilai rahasia, maka Anda dapat menghapus bagian
secrets
dan rahasia Anda tetap tidak diubah. Atau, jika Anda perlu mengubah nilai rahasia, pastikan untuk menyediakanname
danvalue
untuk semua rahasia dalam file sebelum mencoba memperbarui aplikasi. Menghilangkan rahasia dari bagiansecrets
akan menghapus rahasia.Buka app.yaml di editor kode.
volumes: null
Ganti definisi di bagiantemplate
dengan definisi yangvolumes:
mereferensikan volume penyimpanan. Bagian templat akan terlihat seperti berikut ini:template: volumes: - name: my-azure-file-volume storageName: mystoragemount storageType: AzureFile containers: - image: nginx name: my-container-app volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginx resources: cpu: 0.5 ephemeralStorage: 3Gi memory: 1Gi initContainers: null revisionSuffix: '' scale: maxReplicas: 1 minReplicas: 1 rules: null
Bagian baru
template.volumes
menyertakan properti berikut.Properti Deskripsi name
Nilai ini cocok dengan volume yang dibuat dengan memanggil az containerapp env storage set
perintah .storageName
Nilai ini menentukan nama yang digunakan oleh kontainer di lingkungan untuk mengakses volume penyimpanan. storageType
Nilai ini menentukan jenis volume penyimpanan yang ditentukan untuk lingkungan. Dalam hal ini, pemasangan Azure Files dinyatakan. Bagian menentukan
volumes
volume di tingkat aplikasi yang dapat dirujuk oleh kontainer aplikasi atau kontainer sespan Anda melalui bagian yangvolumeMounts
terkait dengan kontainer.volumeMounts
Tambahkan bagian kenginx
kontainer di bagiancontainers
.containers: - image: nginx name: my-container-app volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginx
Bagian baru
volumeMounts
mencakup properti berikut:Properti Deskripsi volumeName
Nilai ini harus cocok dengan nama yang volumes
ditentukan dalam definisi.mountPath
Nilai ini menentukan jalur dalam kontainer Anda tempat penyimpanan dipasang. Perbarui aplikasi kontainer dengan konfigurasi pemasangan penyimpanan baru.
az containerapp update \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --yaml app.yaml \ --output table
Memverifikasi pemasangan penyimpanan
Setelah pemasangan penyimpanan dibuat, Anda dapat memanipulasi file di Azure Storage dari kontainer Anda. Gunakan perintah berikut untuk mengamati pemasangan penyimpanan di tempat kerja.
Buka shell interaktif di dalam aplikasi kontainer untuk menjalankan perintah di dalam kontainer yang sedang berjalan.
az containerapp exec \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP
Perintah ini mungkin membutuhkan waktu sejenak untuk membuka shell jarak jauh. Setelah shell siap, Anda dapat berinteraksi dengan pemasangan penyimpanan melalui perintah sistem file.
Ubah menjadi folder nginx /var/log/nginx .
cd /var/log/nginx
Kembali ke browser dan navigasi ke situs web dan refresh halaman beberapa kali.
Permintaan yang dibuat ke situs web membuat serangkaian entri aliran log.
Kembali ke terminal Anda dan cantumkan
/var/log/nginx
nilai folder.ls
Perhatikan bagaimana file access.log dan error.log muncul di folder ini. File-file ini ditulis ke pemasangan Azure Files di berbagi Azure Storage Anda yang dibuat di langkah-langkah sebelumnya.
Lihat konten file access.log .
cat access.log
Keluar dari shell interaktif kontainer untuk kembali ke sesi terminal lokal Anda.
exit
Sekarang, Anda dapat melihat file di portal Azure untuk memverifikasi bahwa file tersebut ada di akun Azure Storage Anda. Cetak nama akun penyimpanan yang dihasilkan secara acak.
echo $STORAGE_ACCOUNT_NAME
Navigasi ke portal Azure dan buka akun penyimpanan yang dibuat dalam prosedur ini.
Di bawah Penyimpanan Data pilih Berbagi file.
Pilih myshare untuk melihat file access.log dan error.log .
Membersihkan sumber daya
Jika Anda tidak akan terus menggunakan aplikasi ini, jalankan perintah berikut untuk menghapus grup sumber daya bersama dengan semua sumber daya yang dibuat dalam artikel ini.
az group delete \
--name $RESOURCE_GROUP