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.
Azure Files depolama bağlama noktası kullanarak bir kapsayıcı uygulamasında kalıcı depolamaya nasıl yazacağınızı öğrenin. Depolama bağlamaları hakkında daha fazla bilgi için bkz. Azure Container Apps'te depolama bağlamalarını kullanma.
Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:
- Bir Container Apps ortamı oluşturun
- Azure Depolama hesabı oluşturma
- Depolama hesabında dosya paylaşımı tanımlama
- Ortamı depolama dosyası paylaşımına bağlama
- Depolama paylaşımını tek bir kapsayıcıya bağlama
- Web sitesi erişim günlüğünü görüntüleyerek depolama bağlamasını doğrulayın
Uyarı
Azure Container Apps, SMB ve NFS protokollerini kullanarak dosya paylaşımlarını bağlamayı destekler. Bu öğreticide SMB protokolü kullanılarak Azure Dosyalar paylaşımının bağlanması gösterilmektedir. NFS paylaşımlarını bağlama hakkında daha fazla bilgi edinmek için bkz. Azure Container Apps'te depolama bağlamalarını kullanma.
Önkoşullar
- Azure CLI'nın en son sürümünü yükleyin.
Ortamı ayarlama
Aşağıdaki komutlar ortam değişkenlerini tanımlar ve Container Apps uzantınızın güncel olduğundan emin olur.
Azure CLI'da oturum açın.
az loginTakip edecek çeşitli komutlarda kullanılan ortam değişkenlerini ayarlayın.
RESOURCE_GROUP="my-container-apps-group" ENVIRONMENT_NAME="my-storage-environment" LOCATION="canadacentral"Container Apps Azure CLI uzantısının en son sürümüne sahip olduğunuzdan emin olun.
az extension add -n containerapp --upgradeMicrosoft.Appad alanını kaydedin.az provider register --namespace Microsoft.AppDaha önce kullanmadıysanız Azure İzleyici Log Analytics çalışma alanı için
Microsoft.OperationalInsightssağlayıcısını kaydedin.az provider register --namespace Microsoft.OperationalInsights
Ortam oluşturun
Aşağıdaki adımlar bir kaynak grubu ve Container Apps ortamı oluşturur.
Bir kaynak grubu oluşturun.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"Komut oluşturulduktan sonra bir "Başarılı" iletisi döndürür.
Bu öğreticinin sonunda, bu makale sırasında oluşturulan tüm hizmetleri kaldırmak için kaynak grubunu silebilirsiniz.
Container Apps ortamı oluşturun.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP \ --location "$LOCATION" \ --query "properties.provisioningState"Komut oluşturulduktan sonra bir "Başarılı" iletisi döndürür.
Depolama bağlamaları bir Container Apps ortamıyla ilişkilendirilir ve tek tek kapsayıcı uygulamalarında yapılandırılır.
Depolama hesabı ayarlama
Ardından bir depolama hesabı oluşturun ve kapsayıcı uygulamasına bağlamak için bir dosya paylaşımı oluşturun.
Depolama hesabı adı tanımlayın.
Bu komut, benzersiz olduğundan emin olmak için depolama hesabı adına rastgele bir sonek oluşturur.
STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"Bir Azure Depolama hesabı oluşturun.
az storage account create \ --resource-group $RESOURCE_GROUP \ --name $STORAGE_ACCOUNT_NAME \ --location "$LOCATION" \ --kind StorageV2 \ --sku Standard_LRS \ --enable-large-file-share \ --query provisioningStateKomut oluşturulduktan sonra bir "Başarılı" iletisi döndürür.
Dosya paylaşımı adı tanımlayın.
STORAGE_SHARE_NAME="myfileshare"Azure Depolama dosya paylaşımını oluşturun.
az storage share-rm create \ --resource-group $RESOURCE_GROUP \ --storage-account $STORAGE_ACCOUNT_NAME \ --name $STORAGE_SHARE_NAME \ --quota 1024 \ --enabled-protocols SMB \ --output tableDepolama hesabı anahtarını alın.
STORAGE_ACCOUNT_KEY=`az storage account keys list -n $STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv`Depolama hesabı anahtarı, Container Apps ortamınızda depolama bağlantısı oluşturmak için gereklidir. Container Apps, Azure dosya paylaşımlarına kimlik tabanlı erişimi desteklemez.
Depolama bağlama adını tanımlayın.
STORAGE_MOUNT_NAME="mystoragemount"Bu değer, Container Apps ortamınızdan Azure Depolama hesabınıza depolama bağlama bağlantısını tanımlamak için kullanılan addır.
Depolama bağlamasını oluşturma
Artık kapsayıcı uygulaması yapılandırmasını depolama bağlamasını destekleyecek şekilde güncelleştirebilirsiniz.
Ortamda depolama bağlantısını oluşturun.
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 tableBu komut, kapsayıcı uygulaması ortamı ile komutuyla
az storage share-rmoluşturulan dosya paylaşımı arasında bir bağlantı oluşturur.Artık depolama hesabı ve ortamı bağlı olduğuna göre, depolama bağlamasını kullanan bir kapsayıcı uygulaması oluşturabilirsiniz.
Kapsayıcı uygulaması adını tanımlayın.
CONTAINER_APP_NAME="my-container-app"Kapsayıcı uygulamasını oluşturun.
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.fqdnBu komut, yeni kapsayıcı uygulamanızın URL'sini görüntüler.
WEB sitesine gitmek için URL'yi kopyalayın ve web tarayıcınıza yapıştırın.
Sayfa yüklendikten sonra "Nginx'e hoş geldiniz!" iletisini görürsünüz. Bu tarayıcı sekmesini açık tutun. Depolama bağlama doğrulama adımları sırasında web sitesine döneceksiniz.
Kapsayıcı uygulamasının yapılandırıldığını onayladığınıza göre, uygulamayı bir depolama bağlama tanımıyla güncelleyebilirsiniz.
Kapsayıcı uygulamasının yapılandırmasını dışarı aktarın.
az containerapp show \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --output yaml > app.yamlUyarı
Bu uygulamanın gizli özellikleri olmasa da, birçok uygulamada gizli özellikler bulunur. Varsayılan olarak, bir uygulamanın yapılandırmasını dışarı aktardığınızda, gizli değerler oluşturulan YAML dosyasına dahil edilmez.
Gizli değerleri değiştirmeniz gerekmiyorsa,
secretsbölümünü kaldırabilir ve gizli bilgilerinizin değişmeden kalmasını sağlayabilirsiniz. Alternatif olarak, bir gizli anahtarın değerini değiştirmeniz gerekiyorsa, uygulamayı güncellemeye çalışmadan önce dosyadaki tüm gizli anahtarların ve ilgili kodlarınınnamevevaluebelirtildiğinden emin olun. Bir anahtarısecretsbölümünden çıkarmak, anahtarı siler.app.yaml dosyasını bir kod düzenleyicisinde açın.
volumes: nullbölümündeki tanımı depolama biriminetemplatebaşvuran birvolumes:tanımla değiştirin. Şablon bölümü aşağıdaki gibi görünmelidir:template: containers: - image: nginx imageType: ContainerImage name: my-container-app resources: cpu: 0.5 ephemeralStorage: 2Gi memory: 1Gi volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginx initContainers: null revisionSuffix: '' scale: cooldownPeriod: 300 maxReplicas: 1 minReplicas: 1 pollingInterval: 30 rules: null serviceBinds: null terminationGracePeriodSeconds: null volumes: - name: my-azure-file-volume storageName: mystoragemount storageType: AzureFileYeni
template.volumesbölüm aşağıdaki özellikleri içerir.Mülkiyet Açıklama nameBu değer, az containerapp env storage setkomutu çalıştırılarak oluşturulan birimle eşleşir.storageNameBu değer, ortamdaki kapsayıcılar tarafından depolama birimine erişmek için kullanılan adı tanımlar. storageTypeBu değer, ortam için tanımlanan depolama biriminin türünü belirler. Bu durumda, bir Azure Files bağlantısı bildirilir. volumesbölümü, uygulama kapsayıcınızın veya yardımcı kapsayıcılarınızın bir kapsayıcıyla ilişkilendirilmiş birvolumeMountsbölümü aracılığıyla başvurabileceği uygulama düzeyinde hacimleri tanımlar.volumeMountsbölümündekinginxkapsayıcısına bircontainersbölümü ekleyin.containers: - image: nginx name: my-container-app volumeMounts: - volumeName: my-azure-file-volume mountPath: /var/log/nginxYeni
volumeMountsbölüm aşağıdaki özellikleri içerir:Mülkiyet Açıklama volumeNameBu değer, tanımda tanımlanan adla volumeseşleşmelidir.mountPathBu değer, kapsayıcınızda depolamanın bağlandığı yolu tanımlar. Kapsayıcı uygulamasını yeni depolama monte etme yapılandırmasıyla güncelleyin.
az containerapp update \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUP \ --yaml app.yaml \ --output table
Depolama bağlama noktasını doğrulayın
Artık depolama bağlaması kurulduğuna göre Azure Depolama'daki dosyaları kapsayıcınızdan işleyebilirsiniz. İş yerinde depolama bağlamasını gözlemlemek için aşağıdaki komutları kullanın.
Çalışan kapsayıcıda komutları yürütmek için etkileşimli bir komut satırı açın.
az containerapp exec \ --name $CONTAINER_APP_NAME \ --resource-group $RESOURCE_GROUPBu komutun uzak kabuğu açması biraz zaman alabilir. Kabuk hazır olduğunda, dosya sistemi komutları aracılığıyla depolama bağlamasıyla etkileşim kurabilirsiniz. Daha fazla bilgi için bkz. Azure Container Apps'te kapsayıcı konsoluna bağlanma.
nginx /var/log/nginx klasörüne geçin.
cd /var/log/nginxTarayıcıya dönün ve web sitesine gidin ve sayfayı birkaç kez yenileyin.
Web sitesine yapılan istekler bir dizi günlük kayıt akışı oluşturur.
Terminalinize dönün ve klasörün değerlerini
/var/log/nginxlisteleyin.lsaccess.log ve error.log dosyalarının bu klasörde nasıl göründüğüne dikkat edin. Bu dosyalar, önceki adımlarda oluşturulan Azure Depolama paylaşımınızdaki Azure Dosyalar bağlamasına yazılır.
access.log dosyasının içeriğini görüntüleyin.
cat access.logYerel terminal oturumunuza dönmek için kapsayıcının etkileşimli kabuğundan çıkın.
exitArtık azure depolama hesabınızda mevcut olduklarını doğrulamak için Azure portalında dosyaları görüntüleyebilirsiniz. Rastgele oluşturulan depolama hesabınızın adını yazdırın.
echo $STORAGE_ACCOUNT_NAMEAzure portalına gidin ve bu yordamda oluşturulan depolama hesabını açın.
Veri Depolama'nın altında Dosya paylaşımları'yı seçin.
access.log ve error.log dosyalarını görüntülemek için paylaşımım'ı seçin.
Kaynakları temizleme
Bu uygulamayı kullanmaya devam etmeyecekseniz, bu makalede oluşturulan tüm kaynaklarla birlikte kaynak grubunu silmek için aşağıdaki komutu çalıştırın.
az group delete \
--name $RESOURCE_GROUP