تشغيل المهام المعبأة في حاويات مع نُهج إعادة التشغيل

توفر سهولة وسرعة نشر الحاويات في Azure Container Instances نظاماً أساسياً مقنعاً لتنفيذ مهام التشغيل مرة واحدة مثل الإنشاء والاختبار وعرض الصور في مثيل الحاوية.

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

تستخدم الأمثلة الواردة في هذه المقالة Azure CLI. يجب أن يكون لديك Azure CLI الإصدار 2.0.21 أو أحدث مثبتًا محليًّا، أو استخدام CLI في Azure Cloud Shell.

نهج إعادة تشغيل الحاوية

عند إنشاء مجموعة حاويات في مثيلات حاوية Azure، يمكنك تحديد أحد إعدادات نهج إعادة التشغيل الثلاثة.

نهج إعادة تشغيل الوصف
Always دائمًا ما تتم إعادة تشغيل الحاويات في مجموعة الحاويات. هذا هو الإعداد ⁧⁧⁩⁩الافتراضي⁧⁧⁩⁩ المطبق في حالة عدم تحديد سياسة إعادة التشغيل عند إنشاء الحاوية.
Never لا تتم إعادة تشغيل الحاويات في مجموعة الحاويات أبدًا. يتم تشغيل الحاويات مرة واحدة على الأكثر.
OnFailure تتم إعادة تشغيل حاويات في مجموعة الحاويات فقط عند فشل العملية المنفذة في الحاوية (في حالة انتهائها مع تعليمة برمجية للخروج غير صفرية). يتم تشغيل الحاويات مرة واحدة على الأقل.

ملاحظة

إذا تم تكوين مجموعة الحاوية الخاصة بك باستخدام عنوان IP، فيمكن أن يتغير عنوان IP هذا عند إعادة تشغيل مجموعة الحاوية.

حدد نهج إعادة تشغيل

تعتمد كيفية تحديد نهج إعادة التشغيل على كيفية إنشاء مثيلات الحاوية الخاصة بك، مثل Azure CLI أو Azure PowerShell cmdlets أو في مدخل Microsoft Azure. في Azure CLI، حدد المعلمة --restart-policyعند استدعاء إنشاء حاوية az.

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mycontainerimage \
    --restart-policy OnFailure

تشغيل إلى مثال الإنجاز

لمشاهدة نهج إعادة التشغيل قيد التنفيذ، قم بإنشاء مثيل حاوية من صورة aci-wordcount من Microsoft، وحدد نهج إعادة تشغيل OnFailure. تشغل هذه الحاوية النموذجية نصًا بلغة Python يقوم افتراضيًّا بتحليل نص شكسبير Hamlet، ويكتب الكلمات العشر الأكثر شيوعًا إلى STDOUT، ثم يخرج.

قم بتشغيل نموذج الحاوية باستخدام الأمر التالي az container create:

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --restart-policy OnFailure

تبدأ مثيلات Azure Container الحاوية، ثم توقفها عند خروج التطبيق (أو البرنامج النصي، في هذه الحالة). عند إيقاف مثيلات Azure Container للحاوية يكون نهج إعادة تشغيلها NeverأوOnFailure، يتم تعيين حالة الحاوية على منتهية. يمكنك التحقق من حالة الحاوية باستخدام الأمر az container show:

az container show \
    --resource-group myResourceGroup \
    --name mycontainer \
    --query containers[0].instanceView.currentState.state

مثال على الإخراج:

"Terminated"

بمجرد أن تظهر حالة الحاوية النموذجية منتهية، يمكنك مشاهدة ناتج مهمتها من خلال عرض سجلات الحاوية. قم بتشغيل الأمر az container logs لعرض إخراج البرنامج النصي:

az container logs --resource-group myResourceGroup --name mycontainer

المخرجات:

[('the', 990),
 ('and', 702),
 ('of', 628),
 ('to', 610),
 ('I', 544),
 ('you', 495),
 ('a', 453),
 ('my', 441),
 ('in', 399),
 ('HAMLET', 386)]

يوضح هذا المثال الإخراج الذي أرسله البرنامج النصي إلى STDOUT. ومع ذلك، قد تكتب المهام المعبأة في حاويات مخرجاتها بدلًا من ذلك إلى التخزين الدائم لاستردادها لاحقًا. على سبيل المثال، إلى Azure file share.

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

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

للحصول على تفاصيل حول كيفية استمرار إخراج الحاويات الخاصة بك التي يتم تشغيلها حتى الاكتمال، راجع تحميل مشاركة ملف Azure مع مثيلات حاوية Azure.