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ı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.
Bu makalede sunulan örneklerde Azure CLı kullanılır. Yerel olarakAzure CLI sürüm 2.0.21 veya üstünü yüklemiş olmanız veya Azure Cloud ShellCLI 'yi kullanmanız gerekir.
Kapsayıcı yeniden başlatma ilkesi
Azure Container Instances ' de bir kapsayıcı grubu oluşturduğunuzda, üç yeniden başlatma ilkesi ayarlarından birini belirtebilirsiniz.
| Yeniden başlatma ilkesi | Açıklama |
|---|---|
Always |
Kapsayıcı grubundaki kapsayıcılar her zaman yeniden başlatılır. Bu, kapsayıcı oluşturulurken yeniden başlatma ilkesi belirtilmezse 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ıldıysa, kapsayıcı grubu yeniden başlatıldığında bu IP adresi değişebilir.
Yeniden başlatma ilkesi belirtin
Yeniden başlatma ilkesi nasıl belirttiğinizde, Azure CLı, Azure PowerShell cmdlet 'leri veya Azure portal gibi kapsayıcı örneklerinizi nasıl oluşturacağınız üzerine bağlıdır. Azure CLı 'da --restart-policy az Container Createöğesini çağırdığınızda parametresini belirtin.
az container create \
--resource-group myResourceGroup \
--name mycontainer \
--image mycontainerimage \
--restart-policy OnFailure
Tamamlanma için Çalıştır örneği
Yeniden başlatma ilkesini eylemde görmek için Microsoft aci-WORDCOUNT görüntüsünden bir kapsayıcı örneği oluşturun ve OnFailure yeniden başlatma ilkesini belirtin. Bu örnek kapsayıcı, varsayılan olarak, Shakespeare 'ın hamineait metni analiz ederek en sık kullanılan 10 sözcüğü stdout 'a yazar ve ardından çıkar ' a 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 veya olan bir kapsayıcıyı Never durdurulduğunda OnFailure , kapsayıcının durumu sonlandırıldı olarak ayarlanır. Az Container Show komutuyla bir kapsayıcının durumunu kontrol edebilirsiniz:
az container show \
--resource-group myResourceGroup \
--name mycontainer \
--query containers[0].instanceView.currentState.state
Örnek çıktı:
"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 çıkışını görüntülemek için az Container logs komutunu çalıştırın:
az container logs --resource-group myResourceGroup --name mycontainer
Çıkış:
[('the', 990),
('and', 702),
('of', 628),
('to', 610),
('I', 544),
('you', 495),
('a', 453),
('my', 441),
('in', 399),
('HAMLET', 386)]
Bu örnek, komut dosyasının STDOUT 'a gönderdiği çıktıyı gösterir. Ancak Kapsayıcılı görevleriniz, daha sonra almak üzere çıkışını kalıcı depolamaya yazabilir. Örneğin, bir Azure dosya paylaşımında.
Sonraki adımlar
Birkaç kapsayıcı içeren 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 faydalanabilir.
Tamamlanmayı çalıştıran kapsayıcılarınızın çıkışını kalıcı hale getirme hakkında daha fazla bilgi için, bkz. Azure Container Instances bir Azure dosya paylaşma bağlama.