Alıştırma - Yeniden başlatma davranışını denetleme
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.
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.
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.
Çı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)]