Alıştırma - Yeniden başlatma davranışını denetleme

Tamamlandı

Azure Container Instances’ta kapsayıcılar dağıtmanın kolaylığı ve hızı, görüntü işleme veya uygulama derleme ve test etme gibi bir kez çalıştırma görevlerini yürütmek için harika bir uyum sağlar.

Yapılandırılabilen bir yeniden başlatma ilkesiyle kapsayıcıların işlemleri tamamlandıktan sonra durdurulmasını belirtebilirsiniz. Kapsayıcı örnekleri saniyelik olarak faturalandığından, yalnızca görevinizi çalıştıran kapsayıcının çalıştığı süre boyunca kullanılan işlem kaynakları için ücret ödersiniz.

Kapsayıcı yeniden başlatma ilkeleri nelerdir?

Azure Container Instances’ta üç yeniden başlatma ilkesi seçeneği vardır:

Yeniden başlatma ilkesi Açıklama
Her zaman Kapsayıcı grubundaki kapsayıcılar her zaman yeniden başlatılır. Bu ilke, web sunucusu gibi uzun süre çalışan görevler için mantıklıdır. Bu ayar, kapsayıcı oluşturma sırasında yeniden başlatma ilkesi belirtilmediğinde varsayılan olarak uygulanır.
Hiçbir zaman Kapsayıcı grubundaki kapsayıcılar hiçbir zaman yeniden başlatılmaz. Kapsayıcılar tek bir kez çalıştırılır.
OnFailure Kapsayıcı grubundaki kapsayıcılar yalnızca kapsayıcıda yürütülen işlem başarısız olduğunda (sıfır olmayan çıkış kodu ile sonlandırıldığında) yeniden başlatılır. Kapsayıcılar en az bir kez çalıştırılır. Bu ilke, kısa süreli görevler çalıştıran kapsayıcılar için uygundur.

Tamamlamak için bir kapsayıcı çalıştırma

Yeniden başlatma ilkesinin nasıl çalıştığını görmek için azuredocs/aci-wordcount kapsayıcı görüntüsünden bir kapsayıcı örneği oluşturun ve OnFailure yeniden başlatma ilkesini belirtin. Bu kapsayıcı, Shakespeare'in Hamlet eserini analiz ederek en yaygın 10 sözcüğü standart çıktı dosyasına yazıp kapanan bir Python betiği çalıştırır.

  1. Kapsayıcıyı başlatmak için şu az container create komutu çalıştırın:

    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 kapsayıcıyı başlatır ve kapsayıcıdaki işlem (bu durumda bir betik) çıkış yaptığında durdurur. Azure Container Instances yeniden başlatma ilkesi Never (Asla) veya OnFailure (Hata Oluştuğunda) olarak ayarlanmış bir kapsayıcıyı durdurduğunda, kapsayıcının durumu Terminated (Sonlandırıldı) olarak ayarlanır.

  2. Kapsayıcınızın durumunu denetlemek için komutunu çalıştırın az container show :

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

    Komutu, Sonlandırıldı durumuna erişene kadar tekrarlayın.

  3. Çıkışı incelemek için kapsayıcının günlüklerini görüntülemek için komutunu çalıştırın az container logs :

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

    Şu çıkışı alırsınız:

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