تشغيل المهام المعبأة في حاويات مع نُهج إعادة التشغيل
توفر سهولة وسرعة نشر الحاويات في 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.