تمرين - قم بإنشاء مهمة 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 ومجموعة العقد العاملة لسيناريو الاختبار الخاص بك. ثم ستقوم بإنشاء وظيفة دفعية ومهام لتشغيلها في التجمع.
إنشاء مجموعة موارد جديدة
قم بتسجيل الدخول إلى مدخل Azure.
حدد Resource groups في القائمة اليسرى.
حدد + إنشاء.
أكمل النموذج لإنشاء مجموعة موارد جديدة للتمرين وقم بملاحظة الاسم.
إنشاء حساب Azure Batch
في المدخل، افتح Cloud Shell عن طريق تحديد رمز Cloud Shell (>_) في القائمة العلوية. استخدم القائمة المنسدلة في أعلى نافذة المحطة الطرفية للتأكد من أنك في Bash.
إنشاء متغيرات البيئة لمجموعة الموارد ومورد الدفعة.
RESOURCE_GROUP=<your resource group> BATCH_ACCOUNT=batchaccount$RANDOM
قم بتشغيل الأمر التالي في 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>
قم بتشغيل الأمر التالي لتسجيل الدخول إلى حساب Azure Batch:
az batch account login \ --name $BATCH_ACCOUNT \ --resource-group $RESOURCE_GROUP \ --shared-key-auth
أنشئ مجموعة من ثلاثة أجهزة ظاهرية قياسية 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"
قم بتشغيل الأمر التالي لتحديد ما إذا كانت العقد جاهزة بشكل دوري:
az batch pool show --pool-id mypool \ --query "allocationState"
عندما يظهر هذا الاستعلام أن العقد "ثابتة"، فهي جاهزة للعمل. في حين أنها تظهر على أنها "تغيير الحجم"، يتم توفيرها بالفعل. يمكنك استخدام مفتاح السهم للأعلى لتكرار الأمر الأحدث في Shell Cloud إذا كنت تريد الاستعلام عن حالة العقد أكثر من مرة.
قم بتشغيل الأمر التالي لإنشاء وظيفة Batch، وهو تجميع منطقي لجميع المهام التي سيتم تشغيلها على العقد الخاصة بك:
az batch job create \ --id myjob \ --pool-id mypool
تشغيل الأمر التالي لإنشاء مهام 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. لأن الوظيف الدفعية بمثابة حاوية لمهامها الدفعية، يتم حذف المهام أيضًا.
تشغيل الأمر التالي في Cloud Shell مجموعة النظراء من أجل حذف الوظيفة الدفعية:
az batch job delete --job-id myjob -y