Aracılığıyla paylaş


Öğretici: Azure Container Apps'te Azure Dosyalar birim bağlaması oluşturma

Azure Dosyalar depolama bağlama kullanarak kapsayıcı uygulamasında kalıcı depolamaya yazmayı öğ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:

  • Container Apps ortamı oluşturma
  • Azure Depolama hesabı oluşturma
  • Depolama hesabında dosya paylaşımı tanımlama
  • Ortamı depolama dosya 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

Not

Azure Container Apps, SMB ve NFS protokollerini kullanarak dosya paylaşımlarını bağlamayı destekler. Bu öğreticide SMB protokolü kullanılarak bir 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 değişkenleri tanımlamanıza ve Container Apps uzantınızın güncel olduğundan emin olmanıza yardımcı olur.

  1. Azure CLI'da oturum açın.

    az login
    
  2. İzleyebileceğiniz çeşitli komutlarda kullanılan ortam değişkenlerini ayarlayın.

    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. Container Apps Azure CLI uzantısının en son sürümüne sahip olduğunuzdan emin olun.

    az extension add -n containerapp --upgrade
    
  4. Ad alanını Microsoft.App kaydedin.

    az provider register --namespace Microsoft.App
    
  5. Daha önce kullanmadıysanız sağlayıcıyı Microsoft.OperationalInsights Azure İzleyici Log Analytics çalışma alanına kaydedin.

    az provider register --namespace Microsoft.OperationalInsights
    

Ortam oluşturun

Aşağıdaki adımlar bir kaynak grubu ve Container Apps ortamı oluşturur.

  1. 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.

  2. 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.

  1. 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"
    
  2. 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 provisioningState
    

    Komut oluşturulduktan sonra bir "Başarılı" iletisi döndürür.

  3. Dosya paylaşımı adı tanımlayın.

    STORAGE_SHARE_NAME="myfileshare"
    
  4. 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 table
    
  5. Depolama 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.

  6. 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.

  1. 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 table
    

    Bu komut, kapsayıcı uygulaması ortamı ile komutuyla az storage share-rm oluş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.

  2. Kapsayıcı uygulaması adını tanımlayın.

    CONTAINER_APP_NAME="my-container-app"
    
  3. 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.fqdn
    

    Bu komut, yeni kapsayıcı uygulamanızın URL'sini görüntüler.

  4. 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 olarak güncelleştirebilirsiniz.

  5. 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.yaml
    

    Not

    Bu uygulamanın gizli dizileri olmasa da, birçok uygulamada gizli diziler bulunur. Varsayılan olarak, bir uygulamanın yapılandırmasını dışarı aktardığınızda, gizli dizi değerleri oluşturulan YAML'ye dahil değildir.

    Gizli dizi değerlerini değiştirmeniz gerekmiyorsa bölümü kaldırabilirsiniz secrets ve gizli dizileriniz değişmeden kalır. Alternatif olarak, gizli dizinin değerini değiştirmeniz gerekiyorsa, uygulamayı güncelleştirmeye çalışmadan önce dosyadaki tüm gizli dizileri ve name value değerlerini sağladığından emin olun. Bölümden gizli dizi atlanması secrets gizli diziyi siler.

  6. app.yaml dosyasını bir kod düzenleyicisinde açın.

  7. volumes: null bölümündeki tanımı depolama birimine template başvuran bir volumes: tanımla değiştirin. Şablon bölümü aşağıdaki gibi görünmelidir:

    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
    

    Yeni template.volumes bölüm aşağıdaki özellikleri içerir.

    Özellik Açıklama
    name Bu değer, komutu çağrılarak oluşturulan birimle eşleşir az containerapp env storage set .
    storageName Bu değer, ortamdaki kapsayıcılar tarafından depolama birimine erişmek için kullanılan adı tanımlar.
    storageType Bu değer, ortam için tanımlanan depolama biriminin türünü belirler. Bu durumda, bir Azure Dosyalar bağlaması bildirilir.

    bölümü, volumes uygulama kapsayıcınızın veya sepet kapsayıcılarınızın bir kapsayıcıyla ilişkilendirilmiş bir volumeMounts bölüm aracılığıyla başvurabileceği uygulama düzeyinde birimleri tanımlar.

  8. bölümünde kapsayıcıya nginx containers bir volumeMounts bölüm ekleyin.

    containers:
      - image: nginx
        name: my-container-app
        volumeMounts:
        - volumeName: my-azure-file-volume
          mountPath: /var/log/nginx
    

    Yeni volumeMounts bölüm aşağıdaki özellikleri içerir:

    Özellik Açıklama
    volumeName Bu değer, tanımda tanımlanan adla volumes eşleşmelidir.
    mountPath Bu değer, kapsayıcınızda depolamanın bağlandığı yolu tanımlar.
  9. Kapsayıcı uygulamasını yeni depolama bağlama yapılandırmasıyla güncelleştirin.

    az containerapp update \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --yaml app.yaml \
      --output table
    

Depolama bağlamasını doğrulama

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.

  1. Çalışan kapsayıcının içinde komut yürütmek için kapsayıcı uygulamasının içinde etkileşimli bir kabuk açın.

    az containerapp exec \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP
    

    Bu 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.

  2. nginx /var/log/nginx klasörüne geçin.

    cd /var/log/nginx
    
  3. Tarayıcıya dönün ve web sitesine gidin ve sayfayı birkaç kez yenileyin.

    Web sitesine yapılan istekler bir dizi günlük akışı girdisi oluşturur.

  4. Terminalinize dönün ve klasörün değerlerini /var/log/nginx listeleyin.

    access.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.

  5. access.log dosyasının içeriğini görüntüleyin.

    cat access.log
    
  6. Yerel terminal oturumunuza dönmek için kapsayıcının etkileşimli kabuğundan çıkın.

    exit
    
  7. Artık Azure portalında dosyaları görüntüleyebilir ve bunların Azure Depolama hesabınızda mevcut olduğunu doğrulayabilirsiniz. Rastgele oluşturulan depolama hesabınızın adını yazdırın.

    echo $STORAGE_ACCOUNT_NAME
    
  8. Azure portalına gidin ve bu yordamda oluşturulan depolama hesabını açın.

  9. Veri Depolama altında Dosya paylaşımları'ı seçin.

  10. 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

Sonraki adımlar