مشاركة عبر


البرنامج التعليمي: إنشاء تحميل وحدة تخزين Azure Files في Azure Container Apps

تعلم الكتابة إلى التخزين الدائم في تطبيق حاوية باستخدام تحميل تخزين Azure Files. لمزيد من المعلومات حول عمليات تحميل التخزين، راجع استخدام عمليات تحميل التخزين في Azure Container Apps.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء بيئة تطبيقات الحاوية
  • إنشاء حساب تخزين Azure
  • تعريف مشاركة ملف في حساب التخزين
  • ربط البيئة بمشاركة ملف التخزين
  • تحميل مشاركة التخزين في حاوية فردية
  • تحقق من تحميل التخزين عن طريق عرض سجل الوصول إلى موقع الويب

إشعار

تدعم Azure Container Apps تحميل مشاركات الملفات باستخدام بروتوكولات SMB وNFS. يوضح هذا البرنامج التعليمي تحميل مشاركة Azure Files باستخدام بروتوكول SMB. لمعرفة المزيد حول تحميل مشاركات NFS، راجع استخدام عمليات تحميل التخزين في Azure Container Apps.

المتطلبات الأساسية

  • قم بتثبيت أحدث إصدار من Azure CLI.

إعداد البيئة

تساعدك الأوامر التالية على تحديد المتغيرات والتأكد من أن ملحق Container Apps محدث.

  1. تسجيل الدخول إلى Azure CLI.

    az login
    
  2. إعداد متغيرات البيئة المستخدمة في أوامر مختلفة لمتابعة.

    RESOURCE_GROUP="my-container-apps-group"
    ENVIRONMENT_NAME="my-storage-environment"
    LOCATION="canadacentral"
    
  3. تأكد من أن لديك أحدث إصدار من ملحق Container Apps Azure CLI.

    az extension add -n containerapp --upgrade
    
  4. Microsoft.App تسجيل مساحة الاسم.

    az provider register --namespace Microsoft.App
    
  5. Microsoft.OperationalInsights سجل الموفر لمساحة عمل Azure Monitor Log Analytics إذا لم تكن قد استخدمتها من قبل.

    az provider register --namespace Microsoft.OperationalInsights
    

إنشاء بيئة

تنشئ الخطوات التالية مجموعة موارد وبيئة Container Apps.

  1. قم بإنشاء مجموعة موارد.

    az group create \
      --name $RESOURCE_GROUP \
      --location $LOCATION \
      --query "properties.provisioningState"
    

    بمجرد الإنشاء، يقوم الأمر بإرجاع رسالة "Succeeded".

    في نهاية هذا البرنامج التعليمي، يمكنك حذف مجموعة الموارد لإزالة جميع الخدمات التي تم إنشاؤها أثناء هذه المقالة.

  2. إنشاء بيئة Container Apps.

    az containerapp env create \
      --name $ENVIRONMENT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location "$LOCATION" \
      --query "properties.provisioningState"
    

    بمجرد الإنشاء، يقوم الأمر بإرجاع رسالة "Succeeded".

    ترتبط عمليات تحميل التخزين ببيئة Container Apps ويتم تكوينها داخل تطبيقات الحاوية الفردية.

إعداد حساب تخزين

بعد ذلك، قم بإنشاء حساب تخزين وإنشاء مشاركة ملف لتحميلها إلى تطبيق الحاوية.

  1. تعريف اسم حساب تخزين.

    ينشئ هذا الأمر لاحقة عشوائية لاسم حساب التخزين لضمان التفرد.

    STORAGE_ACCOUNT_NAME="myacastorageaccount$RANDOM"
    
  2. إنشاء حساب 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
    

    بمجرد الإنشاء، يقوم الأمر بإرجاع رسالة "Succeeded".

  3. تعريف اسم مشاركة ملف.

    STORAGE_SHARE_NAME="myfileshare"
    
  4. إنشاء مشاركة ملف 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
    
  5. احصل على مفتاح حساب التخزين.

    STORAGE_ACCOUNT_KEY=`az storage account keys list -n $STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv`
    

    مفتاح حساب التخزين مطلوب لإنشاء ارتباط التخزين في بيئة تطبيقات الحاوية.

  6. تعريف اسم تحميل التخزين.

    STORAGE_MOUNT_NAME="mystoragemount"
    

    هذه القيمة هي الاسم المستخدم لتعريف ارتباط تحميل التخزين من بيئة تطبيقات الحاوية إلى حساب Azure Storage الخاص بك.

إنشاء تحميل التخزين

الآن يمكنك تحديث تكوين تطبيق الحاوية لدعم تحميل التخزين.

  1. إنشاء ارتباط التخزين في البيئة.

    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
    

    ينشئ هذا الأمر ارتباطا بين بيئة تطبيق الحاوية ومشاركة الملف التي تم إنشاؤها az storage share-rm باستخدام الأمر .

    الآن بعد أن تم ربط حساب التخزين والبيئة، يمكنك إنشاء تطبيق حاوية يستخدم تحميل التخزين.

  2. حدد اسم تطبيق الحاوية.

    CONTAINER_APP_NAME="my-container-app"
    
  3. إنشاء تطبيق الحاوية.

    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
    

    يعرض هذا الأمر عنوان URL لتطبيق الحاوية الجديد.

  4. انسخ عنوان URL والصقه في مستعرض الويب للانتقال إلى موقع الويب.

    بمجرد تحميل الصفحة، سترى رسالة "مرحبا بك في nginx!". حافظ على علامة تبويب المستعرض هذه مفتوحة. ستعود إلى موقع الويب أثناء خطوات التحقق من تحميل التخزين.

    الآن بعد أن تأكدت من تكوين تطبيق الحاوية، يمكنك تحديث التطبيق إلى باستخدام تعريف تحميل التخزين.

  5. تصدير تكوين تطبيق الحاوية.

    az containerapp show \
      --name $CONTAINER_APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --output yaml > app.yaml
    

    إشعار

    في حين أن هذا التطبيق لا يحتوي على أسرار، فإن العديد من التطبيقات تقوم بأسرار الميزات. بشكل افتراضي، عند تصدير تكوين التطبيق، لا يتم تضمين قيم الأسرار في YAML الذي تم إنشاؤه.

    إذا لم تكن بحاجة إلى تغيير القيم السرية، فيمكنك إزالة secrets القسم وتظل أسرارك دون تغيير. بدلا من ذلك، إذا كنت بحاجة إلى تغيير قيمة البيانات السرية، فتأكد من توفير كل name من و value لجميع الأسرار في الملف قبل محاولة تحديث التطبيق. حذف سر من secrets القسم يؤدي إلى حذف السر.

  6. افتح app.yaml في محرر التعليمات البرمجية.

  7. volumes: null استبدل التعريف في template القسم بتعريف volumes: يشير إلى وحدة التخزين. يجب أن يبدو قسم القالب كما يلي:

    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
    

    يتضمن القسم الجديد template.volumes الخصائص التالية.

    الخاصية ‏‏الوصف
    name تتطابق هذه القيمة مع وحدة التخزين التي تم إنشاؤها عن طريق استدعاء az containerapp env storage set الأمر .
    storageName تعرف هذه القيمة الاسم المستخدم من قبل الحاويات في البيئة للوصول إلى وحدة التخزين.
    storageType تحدد هذه القيمة نوع وحدة التخزين المعرفة للبيئة. في هذه الحالة، يتم الإعلان عن تحميل ملفات Azure.

    volumes يحدد القسم وحدات التخزين على مستوى التطبيق التي يمكن أن تشير إليها حاوية التطبيق أو حاويات sidecar عبر volumeMounts مقطع مقترن بحاوية.

  8. أضف مقطعا volumeMounts إلى الحاوية nginx في containers القسم .

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

    يتضمن القسم الجديد volumeMounts الخصائص التالية:

    الخاصية ‏‏الوصف
    volumeName يجب أن تتطابق هذه القيمة مع الاسم المحدد في volumes التعريف.
    mountPath تحدد هذه القيمة المسار في الحاوية حيث يتم تحميل التخزين.
  9. تحديث تطبيق الحاوية بتكوين تحميل التخزين الجديد.

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

تحقق من تحميل التخزين

الآن بعد إنشاء تحميل التخزين، يمكنك معالجة الملفات في Azure Storage من الحاوية الخاصة بك. استخدم الأوامر التالية لمراقبة تحميل التخزين في العمل.

  1. افتح shell تفاعليا داخل تطبيق الحاوية لتنفيذ الأوامر داخل الحاوية قيد التشغيل.

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

    قد يستغرق هذا الأمر لحظة لفتح shell البعيد. بمجرد أن تصبح shell جاهزة، يمكنك التفاعل مع تحميل التخزين عبر أوامر نظام الملفات.

  2. غير إلى المجلد nginx /var/log/nginx .

    cd /var/log/nginx
    
  3. عد إلى المستعرض وانتقل إلى موقع الويب وقم بتحديث الصفحة عدة مرات.

    تنشئ الطلبات المقدمة إلى موقع الويب سلسلة من إدخالات دفق السجل.

  4. ارجع إلى المحطة الطرفية الخاصة بك واسرد قيم /var/log/nginx المجلد.

    لاحظ كيفية ظهور ملفات access.log وملفات error.log في هذا المجلد. تتم كتابة هذه الملفات إلى تحميل ملفات Azure في مشاركة تخزين Azure التي تم إنشاؤها في الخطوات السابقة.

  5. عرض محتويات ملف access.log .

    cat access.log
    
  6. اخرج من shell التفاعلي للحاوية للعودة إلى جلسة المحطة الطرفية المحلية.

  7. الآن، يمكنك عرض الملفات في مدخل Microsoft Azure للتحقق من وجودها في حساب Azure Storage الخاص بك. اطبع اسم حساب التخزين الذي تم إنشاؤه عشوائيا.

    echo $STORAGE_ACCOUNT_NAME
    
  8. انتقل إلى مدخل Microsoft Azure وافتح حساب التخزين الذي تم إنشاؤه في هذا الإجراء.

  9. ضمن Data Storage ، حدد File shares.

  10. حدد myshare لعرض ملفات access.log وملفات error.log .

تنظيف الموارد

إذا كنت لن تستمر في استخدام هذا التطبيق، فقم بتشغيل الأمر التالي لحذف مجموعة الموارد مع جميع الموارد التي تم إنشاؤها في هذه المقالة.

az group delete \
  --name $RESOURCE_GROUP

الخطوات التالية