التشغيل السريع: استخدم Azure CLI لإنشاء حساب Batch وتشغيل وظيفة

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

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

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

  • إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

  • Azure Cloud ShellأوAzure CLI.

    يمكنك تشغيل أوامر Azure CLI في هذا التشغيل السريع بشكل تفاعلي في Azure Cloud Shell. لتشغيل الأوامر في Cloud Shell، حدد Open Cloudshell في الزاوية العلوية اليسرى من كتلة التعليمات البرمجية. حدد نسخ لنسخ التعليمات البرمجية، ولصقها في Cloud Shell لتشغيلها. يمكنك أيضا تشغيل Cloud Shell من داخل مدخل Microsoft Azure. يستخدم Cloud Shell دائما أحدث إصدار من Azure CLI.

    بدلا من ذلك، يمكنك تثبيت Azure CLI محليا لتشغيل الأوامر. تتطلب الخطوات الواردة في هذه المقالة إصدار Azure CLI 2.0.20 أو أحدث. قم بتشغيل az version لمشاهدة الإصدار المثبت والمكتبات التابعة، ثم قم بتشغيل ترقية az للترقية. إذا كنت تستخدم تثبيتا محليا، فسجل الدخول إلى Azure باستخدام الأمر az login .

إشعار

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

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

قم بتشغيل الأمر التالي az group create لإنشاء مجموعة موارد Azure المسماة qsBatch في eastus2 منطقة Azure. مجموعة الموارد هي حاوية منطقية تحتوي على موارد Azure لهذا التشغيل السريع.

az group create \
    --name qsBatch \
    --location eastus2

إنشاء حساب تخزين

استخدم الأمر az storage account create لإنشاء حساب Azure Storage للارتباط بحساب Batch الخاص بك. على الرغم من أن هذا التشغيل السريع لا يستخدم حساب التخزين، فإن معظم أحمال عمل Batch في العالم الحقيقي تستخدم حساب تخزين مرتبط لنشر التطبيقات وتخزين بيانات الإدخال والإخراج.

قم بتشغيل الأمر التالي لإنشاء حساب تخزين SKU Standard_LRS المسمى mybatchstorage في مجموعة الموارد الخاصة بك:

az storage account create \
    --resource-group qsBatch \
    --name mybatchstorage \
    --location eastus2 \
    --sku Standard_LRS

أنشئ حساب Batch

قم بتشغيل الأمر التالي az batch account create لإنشاء حساب Batch المسمى mybatchaccount في مجموعة الموارد الخاصة بك وربطه mybatchstorage بحساب التخزين.

az batch account create \
    --name mybatchaccount \
    --storage-account mybatchstorage \
    --resource-group qsBatch \
    --location eastus2

سجل الدخول إلى حساب Batch الجديد عن طريق تشغيل الأمر az batch account login . بمجرد مصادقة حسابك باستخدام Batch، تستخدم الأوامر اللاحقة az batch في جلسة العمل هذه سياق الحساب هذا.

az batch account login \
    --name mybatchaccount \
    --resource-group qsBatch \
    --shared-key-auth

قم بإنشاء مجموعة من العقد الحسابية

قم بتشغيل الأمر az batch pool create لإنشاء تجمع من عقد حساب Linux في حساب Batch الخاص بك. ينشئ المثال التالي تجمعا باسم myPool يتكون من جهازين ظاهريين بحجم Standard_A1_v2 يعملان بنظام التشغيل Ubuntu 20.04 LTS. يوفر حجم العقدة هذا توازنا جيدا بين الأداء مقابل التكلفة لمثال التشغيل السريع هذا.

az batch pool create \
    --id myPool \
    --image canonical:0001-com-ubuntu-server-focal:20_04-lts \
    --node-agent-sku-id "batch.node.ubuntu 20.04" \
    --target-dedicated-nodes 2 \
    --vm-size Standard_A1_v2

تقوم Batch بإنشاء التجمع على الفور، ولكن يستغرق بضع دقائق لتخصيص وبدء عقد الحوسبة. لمشاهدة حالة التجمع، استخدم الأمر az batch pool show . يعرض هذا الأمر كل خصائص التجمع، ويمكنك الاستعلام عن خصائص معينة. يستعلم الأمر التالي عن حالة تخصيص التجمع:

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

أثناء تخصيص Batch للعقد وبدء تشغيلها، يكون التجمع في resizing الحالة . يمكنك إنشاء وظيفة ومهام بينما لا تزال resizingحالة التجمع . التجمع جاهز لتشغيل المهام عندما تكون حالة التخصيص steady ويتم تشغيل كل العقد.

قم بإنشاء وظيفة

استخدم الأمر az batch job create لإنشاء وظيفة Batch للتشغيل على التجمع الخاص بك. وظيفة Batch هي مجموعة منطقية لمهمة واحدة أو أكثر. تتضمن المهمة الإعدادات الشائعة للمهام، مثل التجمع الذي سيتم تشغيله عليه. ينشئ المثال التالي مهمة تسمى myJob في myPool البداية ليس لها مهام.

az batch job create \
    --id myJob \
    --pool-id myPool

إنشاء مهام وظيفية

توفر Batch عدة طرق لنشر التطبيقات والبرامج النصية لحساب العقد. استخدم الأمر az batch task create لإنشاء مهام لتشغيلها في الوظيفة. تحتوي كل مهمة على سطر أوامر يحدد تطبيقا أو برنامج نصيا.

ينشئ البرنامج النصي Bash التالي أربع مهام متوازية متطابقة تسمى myTask1 من خلال myTask4. يعرض سطر أوامر المهمة متغيرات بيئة الدفعة على عقدة الحساب، ثم ينتظر 90 ثانية.

for i in {1..4}
do
   az batch task create \
    --task-id myTask$i \
    --job-id myJob \
    --command-line "/bin/bash -c 'printenv | grep AZ_BATCH; sleep 90s'"
done

يظهر إخراج الأمر الإعدادات لكل مهمة. يوزع Batch المهام على عقد الحوسبة.

عرض حالة المهمة

بعد إنشاء المهمة، يقوم Batch بقوائم انتظار المهمة لتشغيلها على التجمع. بمجرد توفر عقدة، يتم تشغيل المهمة على العقدة.

استخدم الأمر az batch task show لعرض حالة مهام Batch. يوضح المثال التالي تفاصيل حول حالة myTask1:

az batch task show \
    --job-id myJob \
    --task-id myTask1

يتضمن إخراج الأمر العديد من التفاصيل. على سبيل المثال، يشير إلى exitCode0 أن أمر المهمة قد اكتمل بنجاح. nodeId يظهر اسم عقدة التجمع التي شغلت المهمة.

عرض إخراج المهام

استخدم الأمر az batch task file list لسرد الملفات التي تم إنشاؤها على عقدة. يسرد الأمر التالي الملفات التي myTask1 تم إنشاؤها:

az batch task file list \
    --job-id myJob \
    --task-id myTask1 \
    --output table

النتائج مشابهة للإخراج التالي:

Name        URL                                                                                       Is Directory    Content Length
----------  ----------------------------------------------------------------------------------------  --------------  ----------------
stdout.txt  https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/stdout.txt  False                  695
certs       https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/certs       True
wd          https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/wd          True
stderr.txt  https://mybatchaccount.eastus2.batch.azure.com/jobs/myJob/tasks/myTask1/files/stderr.txt  False                    0

يقوم الأمر az batch task file download بتنزيل ملفات الإخراج إلى دليل محلي. قم بتشغيل المثال التالي لتنزيل ملف stdout.txt :

az batch task file download \
    --job-id myJob \
    --task-id myTask1 \
    --file-path stdout.txt \
    --destination ./stdout.txt

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

AZ_BATCH_TASK_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1
AZ_BATCH_NODE_STARTUP_DIR=/mnt/batch/tasks/startup
AZ_BATCH_CERTIFICATES_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1/certs
AZ_BATCH_ACCOUNT_URL=https://mybatchaccount.eastus2.batch.azure.com/
AZ_BATCH_TASK_WORKING_DIR=/mnt/batch/tasks/workitems/myJob/job-1/myTask1/wd
AZ_BATCH_NODE_SHARED_DIR=/mnt/batch/tasks/shared
AZ_BATCH_TASK_USER=_azbatch
AZ_BATCH_NODE_ROOT_DIR=/mnt/batch/tasks
AZ_BATCH_JOB_ID=myJobl
AZ_BATCH_NODE_IS_DEDICATED=true
AZ_BATCH_NODE_ID=tvm-257509324_2-20180703t215033z
AZ_BATCH_POOL_ID=myPool
AZ_BATCH_TASK_ID=myTask1
AZ_BATCH_ACCOUNT_NAME=mybatchaccount
AZ_BATCH_TASK_USER_IDENTITY=PoolNonAdmin

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

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

تتحمل التجمعات والعقد رسوما أثناء تشغيل العقد، حتى إذا لم تكن تشغل وظائف. عندما لم تعد بحاجة إلى تجمع، استخدم الأمر az batch pool delete لحذفه. يؤدي حذف تجمع إلى حذف كافة مخرجات المهمة على العقد والعقد نفسها.

az batch pool delete --pool-id myPool

عندما لم تعد بحاجة إلى أي من الموارد التي قمت بإنشائها لهذا التشغيل السريع، يمكنك استخدام الأمر az group delete لحذف مجموعة الموارد وجميع مواردها. لحذف مجموعة الموارد وحساب التخزين وحساب Batch وتجمعات العقد وجميع الموارد ذات الصلة، قم بتشغيل الأمر التالي:

az group delete --name qsBatch

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

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