التمرين - استخدام وحدات تخزين البيانات

مكتمل

بشكل افتراضي، تكون Azure Container Instances بدون حالة. فإذا تعطلت الحاوية أو توقفت، يتم فقدان الحالة بالكامل. للاحتفاظ بالحالة بما يتجاوز مدة بقاء الحاوية، يجب تحميل وحدة تخزين من مخزن خارجي.

هنا، ستقوم بتحميل مشاركة ملف Azure إلى مثيل حاوية Azure حتى تتمكن من تخزين البيانات والوصول إليها لاحقًا.

إنشاء مشاركة ملف Azure

ستنشئ هنا حساب تخزين ومشاركة ملف يمكنك الوصول إليه لاحقًا لمثيل حاوية Azure.

  1. يتطلب حساب التخزين الخاص بك اسمًا فريدًا. وللأغراض التعليمية، قم بتشغيل الأمر التالي لتخزين اسم فريد في متغير Bash.

    STORAGE_ACCOUNT_NAME=mystorageaccount$RANDOM
    
  2. شغل الأمر التالي ⁧⁧az storage account create⁩⁩ لإنشاء حساب التخزين الخاص بك.

    az storage account create \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --sku Standard_LRS \
      --location eastus
    
  3. شغل الأمر التالي لوضع سلسلة اتصال حساب التخزين في متغير بيئة يسمى بـ ⁧⁧AZURE_STORAGE_CONNECTION_STRING⁩⁩.

    export AZURE_STORAGE_CONNECTION_STRING=$(az storage account show-connection-string \
      --resource-group learn-deploy-aci-rg \
      --name $STORAGE_ACCOUNT_NAME \
      --output tsv)
    

    ⁧⁧AZURE_STORAGE_CONNECTION_STRING⁩⁩ هو متغير بيئة خاص تفهمه Azure CLI. يتيح الجزء ⁦⁧export⁩⁩ إمكانية الوصول للمتغير من قبل أوامر CLI الأخرى التي ستقوم بتشغيلها قريبًا.

  4. شغل هذا الأمر لإنشاء مشاركة ملف باسم ⁦⁧⁩⁩aci-share-demo⁦⁧⁩⁩، في حساب التخزين.

    az storage share create --name aci-share-demo
    

الحصول على بيانات اعتماد التخزين

لتحميل مشاركة ملف Azure كوحدة تخزين في Azure Container Instances، تحتاج إلى هذه القيم الثلاثة:

  • اسم حساب التخزين
  • اسم المشاركة
  • مفتاح الوصول لحساب التخزين

وأنت لديك بالفعل أول قيمتين. يتم تخزين اسم حساب التخزين في⁩ متغير Bash STORAGE_ACCOUNT_NAME. لقد قمت بتحديد ⁦⁧⁩⁩aci-share-demo⁦⁧⁩⁩ كاسم المشاركة في الخطوة السابقة. ستحصل هنا على القيمة المتبقية — مفتاح الوصول إلى حساب التخزين.

  1. شغل الأمر التالي للحصول على مفتاح حساب التخزين.

    STORAGE_KEY=$(az storage account keys list \
      --resource-group learn-deploy-aci-rg \
      --account-name $STORAGE_ACCOUNT_NAME \
      --query "[0].value" \
      --output tsv)
    

    يتم تخزين النتيجة في متغير Bash المسمى ⁧⁧STORAGE_KEY⁩⁩.

  2. كخطوة اختيارية، اطبع مفتاح التخزين إلى وحدة التحكم.

    echo $STORAGE_KEY
    

شغل حاوية وحمل مشاركة الملف

لتحميل ملف مشاركة Azure كوحدة تخزين في حاوية، عليك تحديد نقطة تحميل وحدة التخزين والمشاركة عند إنشاء الحاوية.

  1. شغل هذا ⁧⁧az container create⁩⁩ الأمر لإنشاء حاوية يمكنها تحميل /aci/logs/ إلى مشاركة الملف الخاص بك.

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --image mcr.microsoft.com/azuredocs/aci-hellofiles \
      --location eastus \
      --ports 80 \
      --ip-address Public \
      --azure-file-volume-account-name $STORAGE_ACCOUNT_NAME \
      --azure-file-volume-account-key $STORAGE_KEY \
      --azure-file-volume-share-name aci-share-demo \
      --azure-file-volume-mount-path /aci/logs/
    
  2. شغل ⁧⁧az container show⁩⁩ للحصول على عنوان بروتوكول الإنترنت العام للحاوية.

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name aci-demo-files \
      --query ipAddress.ip \
      --output tsv
    
  3. من المتصفح، انتقل إلى عنوان بروتوكول الإنترنت الخاص بالحاوية. سترى هذا.

    Screenshot of the Azure Container Instances file share demo running in a browser.

  4. أدخل أي نص في النموذج، وحدد ⁧⁩Submit⁧⁩. ينشئ هذا الإجراء ملفًا يحتوي على النص الذي أدخلته في مشاركة ملف Azure.

  5. شغل هذا ⁧⁧az storage file list⁩⁩ الأمر لعرض الملفات الموجودة في مشاركة الملف.

    az storage file list -s aci-share-demo -o table
    
  6. شغل ⁧⁧az storage file download⁩⁩ لتحميل ملف إلى جلسة عمل Shell Cloud. استبدل <filename>⁩ بأحد الملفات التي ظهرت في الخطوة السابقة.

    az storage file download -s aci-share-demo -p <filename>
    
  7. شغل الأمر ⁦⁧cat⁩⁩ لطباعة محتويات الملف.

    cat <filename>
    

تذكر أن البيانات الخاصة بك تستمر عند إنهاء الحاوية. يمكنك تحميل مشاركة الملف إلى مثيلات حاوية أخرى لجعل تلك البيانات متوفرة لهم.