تمرين - راقب مهمة Azure Batch الخاصة بك في CLI

مكتمل

إذا كنت تستخدم Azure Batch لتشغيل مهام مكثفة، فغالبًا ما تريد معرفة كيفية سير المهام.

بصفتك مهندس الحلول للمؤسسات غير الربحية، ستحتاج إلى طرق للوصول إلى ما يحدث في Azure Batch. تحتاج أيضا إلى تحديد ما إذا كانت العقد والمهام تعمل، ومدى تقدمها، وما إذا كانت قد أنتجت ملفات إخراج قابلة للتنزيل.

في هذه الوحدة، ستنشئ وظيفة مشابهة لتلك الموجودة في الوحدة السابقة، وتراقب تقدم مهامها، وتنزيل الملفات التي تنتجها المهام كمخرجات، وكل ذلك باستخدام Azure CLI.

هام

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

مراقبة المهام باستخدام CLI

يعالج Azure Batch جميع تفاصيل إنشاء وإدارة عقد الحوسبة وجدولة المهام للتشغيل على تلك العقد.

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

في نهاية الوحدة الأخيرة، قمنا بحذف الوظيفة، ما أدى إلى حذف جميع مهامها. سنقوم الآن بإنشاء وظيفة ومهام جديدة. تجدُر الإشارة إلى أن حذف المهام وإعادة إنشائها عملية سريعة إلى حد ما، وتتيح لك إمكانية الفصل بسهولة بين التجارب والمشاريع المختلفة في Azure Batch. وعلى النقيض من ذلك، يستغرق حذف وإعادة إنشاء كيانات Batch ذات المستوى الأعلى (مثل الحسابات) وقتا أكبر، لأنه يجب إعادة إنشاء تجمع الدفعات وتخصيص الأجهزة الظاهرية.

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

  2. افتح Cloud Shell عن طريق تحديد أيقونة Cloud Shell (>_) في القائمة العلوية.

  3. قم بتشغيل الأمر التالي في Cloud Shell لإنشاء وظيفة Batch جديدة:

    az batch job create \
     --id myjob2 \
     --pool-id mypool
    

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

  4. قم بتشغيل الأمر التالي لإنشاء مهام Batch ضمن هذه المهمة الجديدة:

    for i in {1..10}
    do
       az batch task create \
        --task-id mytask$i \
        --job-id myjob2 \
        --command-line "/bin/bash -c 'echo \$(printenv | grep \AZ_BATCH_TASK_ID) processed by; echo \$(printenv | grep \AZ_BATCH_NODE_ID)'"
    done
    
  5. قم بتشغيل الأمر التالي في Cloud Shell لعرض حالة إحدى المهام التي قمت بإنشائها:

    az batch task show \
     --job-id myjob2 \
     --task-id mytask1
    

قم بتنزيل إخراج المهمة باستخدام CLI

للتحقق من تنفيذ مهمة الدفعة بشكل صحيح، يمكنك تنزيل الملفات التي أنشأتها وفحصها.

  1. قم بتشغيل الأمر التالي في Cloud Shell لعرض جدول بجميع الملفات التي تم إنشاؤها بواسطة إحدى المهام التي قمت بإنشائها:

    az batch task file list \
     --job-id myjob2 \
     --task-id mytask5 \
     --output table
    

    إشعار

    إذا رأيت The files of the specified task cannot be accessed as the task state is still active رسالة خطأ، فانتظر بضع دقائق وقم بتشغيل الأمر مرة أخرى.

  2. قم بتشغيل الأمر التالي في Cloud Shell لإنشاء دليل مخصص لمخرجات المهمة والتنقل فيه:

    mkdir taskoutputs && cd taskoutputs
    
  3. قم بتشغيل الأمر التالي في Cloud Shell لتنزيل الملفات التي تم إنشاؤها بواسطة جميع المهام التي قمت بإنشائها:

    for i in {1..10}
    do
    az batch task file download \
        --job-id myjob2 \
        --task-id mytask$i \
        --file-path stdout.txt \
        --destination ./stdout$i.txt
    done
    

    تحتوي المهام على دليل عمل افتراضي، ويتم توجيه عملها بشكل افتراضي إلى stdout.txt. من خلال التكرار الحلقي، يمكننا إعادة التوجيه stdout.txt إلى إصدارات مرقمة من stdout.txt، كل منها يظهر عمل مهمة معينة والعقدة التي تم استخدامها لتنفيذها.

  4. قم بتشغيل الأمر التالي لعرض محتويات النص لاثنين من الملفات التي تم إنشاؤها بواسطة العينة:

    cat stdout1.txt && cat stdout2.txt
    

    يُظهر هذا الإخراج مهام مختلفة تتم جدولتها على عقد مختلفة حيث يقوم برنامج جدولة الدُفعات بمعالجتها.

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

  5. استخدم الأمر التالي لحذف وظيفة Batch:

    az batch job delete --job-id myjob2 -y