Aracılığıyla paylaş


Yeniden başlatma ilkeleriyle kapsayıcılı görevleri çalıştırma

Azure Container Instances’da hızla ve kolayca kapsayıcı dağıtma olanağı, bir kapsayıcı örneğinde derleme, test ve görüntü işleme gibi tek kez çalıştırılan görevlerin yürütülmesi için cazip bir platform sağlar.

Yapılandırılabilir bir yeniden başlatma ilkesiyle, kapsayıcılarınızın işlemleri tamamlandığında durdurulacağını belirtebilirsiniz. Azure, kapsayıcı örneklerini saniye başına faturalandırdığından, yalnızca görevinizi yürüten kapsayıcı çalışırken kullanılan işlem kaynakları için ücretlendirilirsiniz.

Bu makalede sunulan örneklerde Azure CLI kullanılır. Yerel olarak Azure CLI 2.0.21 veya üzeri bir sürümün yüklü olması veya Azure Cloud Shell'de CLI'yi kullanmanız gerekir.

Kapsayıcı yeniden başlatma ilkesi

Azure Container Instances'ta bir kapsayıcı grubu oluşturduğunuzda, üç yeniden başlatma ilkesi ayarından birini belirtebilirsiniz.

Yeniden başlatma ilkesi Açıklama
Always Kapsayıcı grubundaki kapsayıcılar her zaman yeniden başlatılır. Bu ilke, kapsayıcı oluşturma sırasında yeniden başlatma ilkesi belirtilmediğinde uygulanan varsayılan ayardır.
Never Kapsayıcı grubundaki kapsayıcılar hiçbir zaman yeniden başlatılmaz. Kapsayıcılar en fazla bir kez çalışı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.

Not

Kapsayıcı grubunuz bir IP adresiyle yapılandırılmışsa, kapsayıcı grubu yeniden başlatıldığında bu IP adresi değişebilir.

Yeniden başlatma ilkesi belirtme

Yeniden başlatma ilkesini nasıl belirleyeceğiniz, Azure CLI, Azure PowerShell cmdlet'leri veya Azure portalında olduğu gibi kapsayıcı örneklerinizi nasıl oluşturduğunuza bağlıdır. Azure CLI'da az container create komutunu çağırdığınızda parametresini belirtin--restart-policy.

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mycontainerimage \
    --restart-policy OnFailure

Tamamlanmaya kadar çalıştır örneği

Yeniden başlatma ilkesinin nasıl çalıştığını görmek için Microsoft aci-wordcount görüntüsünden bir kapsayıcı örneği oluşturun ve yeniden başlatma ilkesini belirtin OnFailure . Bu örnek kapsayıcı, varsayılan olarak Shakespeare'in Hamlet metnini analiz eden, STDOUT'a en yaygın 10 sözcüğü yazan ve ardından çıkan bir Python betiği çalıştırır.

Aşağıdaki az container create komutuyla örnek kapsayıcıyı çalıştırın:

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --restart-policy OnFailure

Azure Container Instances kapsayıcıyı başlatır ve kapsayıcıdaki uygulama (veya bu durumda betik) çıkış yaptığında durdurur. Azure Container Instances, yeniden başlatma ilkesi Never veya OnFailureolan bir kapsayıcıyı durdurduğunda kapsayıcının durumu Sonlandırıldı olarak ayarlanır. Az container show komutuyla kapsayıcının durumunu de kontrol edebilirsiniz:

az container show \
    --resource-group myResourceGroup \
    --name mycontainer \
    --query containers[0].instanceView.currentState.state

Örnek çıkış:

"Terminated"

Örnek kapsayıcının durumunda Sonlandırıldı ifadesi göründüğünde kapsayıcı günlüklerini görüntüleyerek görev çıktısını görebilirsiniz. Betiğin çıktısını görüntülemek için az container logs komutunu çalıştırın:

az container logs --resource-group myResourceGroup --name mycontainer

Çıktı:

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

Bu örnekte betiğin STDOUT'a gönderdiği çıkış gösterilmektedir. Ancak kapsayıcılı görevleriniz, daha sonra almak üzere çıktılarını kalıcı depolamaya yazabilir. Örneğin, bir Azure dosya paylaşımına.

Sonraki adımlar

Çeşitli kapsayıcılarla büyük bir veri kümesini toplu işleme gibi görev tabanlı senaryolar, çalışma zamanında özel ortam değişkenlerinden veya komut satırlarından yararlanabilir.

Tamamlanmaya kadar çalışan kapsayıcılarınızın çıkışını kalıcı hale getirmek için bkz . Azure Container Instances ile Azure dosya paylaşımını bağlama.