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

مكتمل

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

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

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

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

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

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

لمشاهدة نهج إعادة التشغيل على أرض الواقع، قم بإنشاء مثيل حاوية ⁦⁧من صورة حاوية 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 Container Instances لحاوية يكون نهج إعادة التشغيل الخاص بها هو ⁦⁧⁩⁩Never⁦⁧⁩⁩ أو ⁦⁧⁩⁩OnFailure⁦⁧⁩⁩، يتم تعيين حالة الحاوية إلى ⁦⁧⁩⁩Terminated⁦⁧⁩⁩.

  2. شغل ⁧⁧az container show⁩⁩ للتحقق من حالة الحاوية.

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

    كرر الأمر حتى يصل إلى حالة ⁦⁧⁩⁩Terminated⁦⁧⁩⁩.

  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)]