تمرين - قم بإنشاء مهمة Azure Batch في CLI لتشغيل مهمتك المتوازية

مكتمل

يتيح لك Azure CLI إنشاء موارد Azure Batch ونشرها من سطر الأوامر.

بصفتك مهندس الحلول للمنظمات غير الربحية، فأنت تريد البدء في إنشاء حل مجمع لسيناريو التعرف البصري على الحروف على Azure. كخطوة أولى، ستقوم باختبار إنشاء حساب Batch، وتجمّع من عقد العاملين، والوظائف، والمهام، وكلها باستخدام CLI Azure.

Azure CLI عبارة عن سطر أوامر عبر الأنظمة الأساسية لإنشاء موارد Azure وإدارتها. ويستخدم بناء جملة az noun verb --properties متسقاً. تتبع أوامر CLI لإدارة Azure Batch هذا الاصطلاح، وبالتالي تتخذ كافة الأوامر شكل az batch verb --properties.

هام

التمرينات في هذه الوحدة النمطية اختيارية. لإكمال التدريبات، ستحتاج إلى اشتراك Azure الخاص بك.

إنشاء موارد Azure Batch

أولاً، ستنشئ حساب Azure Batch ومجموعة العقد العاملة لسيناريو الاختبار الخاص بك. ثم ستقوم بإنشاء وظيفة دفعية ومهام لتشغيلها في التجمع.

إنشاء مجموعة موارد جديدة

  1. قم بتسجيل الدخول إلى مدخل Azure.

  2. حدد Resource groups في القائمة اليسرى.

  3. حدد + إنشاء.

  4. أكمل النموذج لإنشاء مجموعة موارد جديدة للتمرين وقم بملاحظة الاسم.

إنشاء حساب Azure Batch

  1. في المدخل، افتح Cloud Shell عن طريق تحديد رمز Cloud Shell (>_) في القائمة العلوية. استخدم القائمة المنسدلة في أعلى نافذة المحطة الطرفية للتأكد من أنك في Bash.

  2. إنشاء متغيرات البيئة لمجموعة الموارد ومورد الدفعة.

    RESOURCE_GROUP=<your resource group>
    BATCH_ACCOUNT=batchaccount$RANDOM
    
  3. قم بتشغيل الأمر التالي في Cloud Shell لإنشاء حساب Azure Batch. اختر من بين المواقع التالية:

    westeurope,eastus,eastus2,westus,northcentralus,brazilsouth,northeurope,centralus,eastasia,japaneast,australiasoutheast,japanwest,koreasouth,koreacentral,southeastasia,southcentralus,australiaeast,southindia,centralindia,westindia,canadacentral,canadaeast,uksouth,ukwest,westcentralus,westus2,francecentral,southafricanorth
    
    az batch account create \
     --name $BATCH_ACCOUNT \
     --resource-group $RESOURCE_GROUP \
     --location <choose a location from the preceding list>
    
  4. قم بتشغيل الأمر التالي لتسجيل الدخول إلى حساب Azure Batch:

    az batch account login \
     --name $BATCH_ACCOUNT \
     --resource-group $RESOURCE_GROUP \
     --shared-key-auth
    
  5. أنشئ مجموعة من ثلاثة أجهزة ظاهرية قياسية A1 v2 تعمل بنظام التشغيل Ubuntu 18.04:

    az batch pool create \
     --id mypool --vm-size Standard_A1_v2 \
     --target-dedicated-nodes 3 \
     --image canonical:ubuntuserver:18.04-LTS \
     --node-agent-sku-id "batch.node.ubuntu 18.04"  
    
  6. قم بتشغيل الأمر التالي لتحديد ما إذا كانت العقد جاهزة بشكل دوري:

    az batch pool show --pool-id mypool \
     --query "allocationState"
    

    عندما يظهر هذا الاستعلام أن العقد "ثابتة"، فهي جاهزة للعمل. في حين أنها تظهر على أنها "تغيير الحجم"، يتم توفيرها بالفعل. يمكنك استخدام مفتاح السهم للأعلى لتكرار الأمر الأحدث في Shell Cloud إذا كنت تريد الاستعلام عن حالة العقد أكثر من مرة.

  7. قم بتشغيل الأمر التالي لإنشاء وظيفة Batch، وهو تجميع منطقي لجميع المهام التي سيتم تشغيلها على العقد الخاصة بك:

    az batch job create \
     --id myjob \
     --pool-id mypool
    
  8. تشغيل الأمر التالي لإنشاء مهام Batch :

    for i in {1..10}
    do
       az batch task create \
        --task-id mytask$i \
        --job-id myjob \
        --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'"
    done
    

    تنشئ هذه الحلقة سلسلة من مهام Batch المرقمة، كل منها ينتج معلومات حول معرف المهمة ومعرف العقدة المتضمن. من خلال فحص ما يحدث هنا من كثب، يمكنك رؤية بعض خصائص طريقة عمل Azure Batch. تتم جدولة المهام تلقائيًا في العقد ذات السعة المتاحة. ومع ذلك، فإن متغيرات البيئة التي نستخدمها (AZ_BATCH_TASK_ID و AZ_BATCH_NODE_ID)، لإظهار معلومات حول المهمة التي يتم تشغيلها على أي عقدة، متوفرة فقط في سياق مستخدم المهمة، وهو حساب افتراضي تم إنشاؤه على كل عقدة لتشغيل المهام. أيضا، لا تعمل الوسيطة --command-line مباشرة تحت shell، لذلك يجب عليك استدعاء shell بشكل صريح باستخدام /bin/bash -c من أجل استخدام أوامر مثل printenv و grep.

    تكمل هذه الحلقة تنفيذ مهمة Azure Batch. سنترك حساب Azure Batch ومجموعة العقد العاملة في مكانها للاستخدام في الوحدة النمطية التالية، ولكننا سنحذف وظيفة Batch. لأن الوظيف الدفعية بمثابة حاوية لمهامها الدفعية، يتم حذف المهام أيضًا.

  9. تشغيل الأمر التالي في Cloud Shell مجموعة النظراء من أجل حذف الوظيفة الدفعية:

    az batch job delete --job-id myjob -y