تمرين – التحكم في سلوك إعادة تشغيل

مكتمل

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

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

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

Azure Container Instances لها ثلاثة خيارات لنهج إعادة التشغيل:

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

تشغيل حاوية حتى الاكتمال

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

  1. قم بتشغيل هذا az container create الأمر لبدء تشغيل الحاوية:

    az container create \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
      --restart-policy OnFailure \
      --location eastus
    

    Azure Container Instances تبدأ الحاوية ثم توقفها عند خروج العملية (في هذه الحالة البرنامج نصي). عندما توقف مثيلات حاوية Azure حاوية يكون نهج إعادة التشغيل الخاص بها أبدا أو OnFailure، يتم تعيين حالة الحاوية إلى تم الإنهاء.

  2. قم بتشغيل az container show للتحقق من حالة الحاوية الخاصة بك:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --query "containers[0].instanceView.currentState.state"
    

    كرر الأمر حتى يصل إلى الحالة "تم الإنهاء ".

  3. قم بتشغيل az container logs لعرض سجلات الحاوية لفحص الإخراج:

    az container logs \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo
    

    يمكنك الحصول على هذا الإخراج:

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