مشاركة عبر


JobPreparationTask interface

يمكنك استخدام إعداد الوظيفة لإعداد عقدة لتشغيل المهام للوظيفة. تتضمن الأنشطة التي يتم تنفيذها عادة في إعداد الوظيفة: تنزيل ملفات الموارد الشائعة المستخدمة من قبل كافة المهام في الوظيفة. يمكن لمهمة إعداد الوظيفة تنزيل ملفات الموارد الشائعة هذه إلى الموقع المشترك على العقدة. (AZ_BATCH_NODE_ROOT_DIR\shared)، أو بدء تشغيل خدمة محلية على العقدة بحيث يمكن لجميع مهام هذه الوظيفة الاتصال بها. إذا فشلت مهمة إعداد الوظيفة (أي، استنفاد عدد مرات إعادة المحاولة قبل الخروج باستخدام رمز الخروج 0)، فلن تقوم الدفعة بتشغيل مهام هذه المهمة على العقدة. تظل عقدة الحساب غير مؤهلة لتشغيل مهام هذه المهمة حتى يتم إعادة تصورها. تظل عقدة الحساب نشطة ويمكن استخدامها لوظائف أخرى. يمكن تشغيل مهمة إعداد الوظيفة عدة مرات على نفس العقدة. لذلك، يجب كتابة مهمة إعداد الوظيفة للتعامل مع إعادة التنفيذ. إذا تمت إعادة تشغيل العقدة، يتم تشغيل مهمة إعداد الوظيفة مرة أخرى على عقدة الحساب قبل جدولة أي مهمة أخرى من المهمة، إذا كانت إعادة تشغيلOnNodeRebootAfterSuccess صحيحة أو إذا لم تكتمل مهمة إعداد الوظيفة مسبقا. إذا تمت إعادة تصور العقدة، يتم تشغيل مهمة إعداد الوظيفة مرة أخرى قبل جدولة أي مهمة من المهمة. ستقوم الدفعة بإعادة محاولة المهام عند تشغيل عملية استرداد على عقدة. تتضمن أمثلة عمليات الاسترداد (على سبيل المثال لا الحصر) عند إعادة تشغيل عقدة غير صحية أو اختفاء عقدة حساب بسبب فشل المضيف. عمليات إعادة المحاولة بسبب عمليات الاسترداد مستقلة عن ولا يتم حسابها مقابل maxTaskRetryCount. حتى إذا كان maxTaskRetryCount هو 0، فقد تحدث إعادة محاولة داخلية بسبب عملية استرداد. ولهذا السبب، يجب أن تكون كافة المهام غير فعالة. وهذا يعني أن المهام تحتاج إلى التسامح مع المقاطعة وإعادة التشغيل دون التسبب في أي تلف أو بيانات مكررة. أفضل ممارسة للمهام طويلة الأمد هي استخدام شكل من أشكال نقاط التفتيش.

الخصائص

commandLine

سطر الأوامر لمهمة إعداد الوظيفة. لا يعمل سطر الأوامر تحت shell، وبالتالي لا يمكن الاستفادة من ميزات shell مثل توسيع متغير البيئة. إذا كنت ترغب في الاستفادة من هذه الميزات، يجب استدعاء shell في سطر الأوامر، على سبيل المثال باستخدام "cmd /c MyCommand" في Windows أو "/bin/sh -c MyCommand" في Linux. إذا كان سطر الأوامر يشير إلى مسارات الملفات، فيجب أن يستخدم مسارا نسبيا (بالنسبة إلى دليل عمل المهمة)، أو استخدام متغير البيئة المقدم من Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

constraints

القيود التي تنطبق على مهمة إعداد الوظيفة.

containerSettings

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

environmentSettings

قائمة بإعدادات متغير البيئة لمهمة إعداد الوظيفة.

id

سلسلة تعرف مهمة إعداد الوظيفة بشكل فريد داخل الوظيفة. يمكن أن يحتوي المعرف على أي تركيبة من الأحرف الأبجدية الرقمية بما في ذلك الواصلات والتسطير السفلي ولا يمكن أن يحتوي على أكثر من 64 حرفا. إذا لم تحدد هذه الخاصية، تقوم خدمة Batch بتعيين قيمة افتراضية ل "jobpreparation". لا يمكن أن يكون لمهمة أخرى في الوظيفة نفس معرف مهمة إعداد الوظيفة. إذا حاولت إرسال مهمة بنفس المعرف، فإن خدمة Batch ترفض الطلب برمز الخطأ TaskIdSameAsJobPreparationTask؛ إذا كنت تتصل بواجهة برمجة تطبيقات REST مباشرة، فإن رمز حالة HTTP هو 409 (تعارض).

rerunOnNodeRebootAfterSuccess

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

resourceFiles

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

userIdentity

هوية المستخدم التي يتم تشغيل مهمة إعداد الوظيفة بموجبها. إذا تم حذفها، يتم تشغيل المهمة كمستخدم غير إداري فريد للمهمة على عقد حساب Windows، أو مستخدم غير إداري فريد للتجمع على عقد حساب Linux.

waitForSuccess

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

تفاصيل الخاصية

commandLine

سطر الأوامر لمهمة إعداد الوظيفة. لا يعمل سطر الأوامر تحت shell، وبالتالي لا يمكن الاستفادة من ميزات shell مثل توسيع متغير البيئة. إذا كنت ترغب في الاستفادة من هذه الميزات، يجب استدعاء shell في سطر الأوامر، على سبيل المثال باستخدام "cmd /c MyCommand" في Windows أو "/bin/sh -c MyCommand" في Linux. إذا كان سطر الأوامر يشير إلى مسارات الملفات، فيجب أن يستخدم مسارا نسبيا (بالنسبة إلى دليل عمل المهمة)، أو استخدام متغير البيئة المقدم من Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

commandLine: string

قيمة الخاصية

string

constraints

القيود التي تنطبق على مهمة إعداد الوظيفة.

constraints?: TaskConstraints

قيمة الخاصية

containerSettings

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

containerSettings?: TaskContainerSettings

قيمة الخاصية

environmentSettings

قائمة بإعدادات متغير البيئة لمهمة إعداد الوظيفة.

environmentSettings?: EnvironmentSetting[]

قيمة الخاصية

id

سلسلة تعرف مهمة إعداد الوظيفة بشكل فريد داخل الوظيفة. يمكن أن يحتوي المعرف على أي تركيبة من الأحرف الأبجدية الرقمية بما في ذلك الواصلات والتسطير السفلي ولا يمكن أن يحتوي على أكثر من 64 حرفا. إذا لم تحدد هذه الخاصية، تقوم خدمة Batch بتعيين قيمة افتراضية ل "jobpreparation". لا يمكن أن يكون لمهمة أخرى في الوظيفة نفس معرف مهمة إعداد الوظيفة. إذا حاولت إرسال مهمة بنفس المعرف، فإن خدمة Batch ترفض الطلب برمز الخطأ TaskIdSameAsJobPreparationTask؛ إذا كنت تتصل بواجهة برمجة تطبيقات REST مباشرة، فإن رمز حالة HTTP هو 409 (تعارض).

id?: string

قيمة الخاصية

string

rerunOnNodeRebootAfterSuccess

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

rerunOnNodeRebootAfterSuccess?: boolean

قيمة الخاصية

boolean

resourceFiles

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

resourceFiles?: ResourceFile[]

قيمة الخاصية

userIdentity

هوية المستخدم التي يتم تشغيل مهمة إعداد الوظيفة بموجبها. إذا تم حذفها، يتم تشغيل المهمة كمستخدم غير إداري فريد للمهمة على عقد حساب Windows، أو مستخدم غير إداري فريد للتجمع على عقد حساب Linux.

userIdentity?: UserIdentity

قيمة الخاصية

waitForSuccess

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

waitForSuccess?: boolean

قيمة الخاصية

boolean