Uruchamianie zadań konteneryzowanych przy użyciu zasad ponownego uruchamiania

Łatwość i szybkość wdrażania kontenerów w usłudze Azure Container Instances zapewnia atrakcyjną platformę do wykonywania jednorazowych zadań, takich jak kompilacje, testy i renderowanie obrazów w wystąpieniu kontenera.

Dzięki możliwym do skonfigurowania zasadom ponownego uruchamiania możesz określić, aby Twoje kontenery zatrzymały się po zakończeniu wykonywania procesów. Ponieważ opłaty za wystąpienia kontenerów są naliczane za sekundę, rozliczeniu podlegają tylko zasoby obliczeniowe używane wtedy, kiedy działa kontener wykonujący zadanie.

Przykłady przedstawione w tym artykule korzystają z interfejsu wiersza polecenia platformy Azure. Musisz mieć zainstalowany lokalnie interfejs wiersza polecenia platformy Azure w wersji 2.0.21 lub nowszej albo użyć interfejsu wiersza polecenia w usłudze Azure Cloud Shell.

Zasady ponownego uruchamiania kontenera

Podczas tworzenia grupy kontenerów w Azure Container Instances można określić jedno z trzech ustawień zasad ponownego uruchamiania.

Zasady ponownego uruchamiania Opis
Always Kontenery w grupie kontenerów są zawsze uruchamiane ponownie. Jest to domyślne ustawienie stosowane, gdy podczas tworzenia kontenera nie zostanie określona żadna zasada ponownego uruchamiania.
Never Kontenery w grupie kontenerów nie są nigdy uruchamiane ponownie. Kontenery są uruchamiane co najwyżej raz.
OnFailure Kontenery w grupie kontenerów są uruchamiane ponownie tylko wtedy, gdy proces wykonywany w kontenerze zakończy się niepowodzeniem (zostanie przerwany z kodem zakończenia różnym od zera). Kontenery są uruchamiane co najmniej raz.

Uwaga

Jeśli grupa kontenerów jest skonfigurowana przy użyciu adresu IP, ten adres IP może ulec zmianie po ponownym uruchomieniu grupy kontenerów.

Określanie zasad ponownego uruchamiania

Sposób określania zasad ponownego uruchamiania zależy od sposobu tworzenia wystąpień kontenera, takich jak za pomocą interfejsu wiersza polecenia platformy Azure, Azure PowerShell poleceń cmdlet lub w Azure Portal. W interfejsie wiersza polecenia platformy --restart-policy Azure określ parametr podczas wywoływania polecenia az container create.

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

Przykład przebiegu do ukończenia

Aby wyświetlić zasady ponownego uruchamiania w działaniu, utwórz wystąpienie kontenera na podstawie obrazu microsoft aci-wordcount i określ zasady ponownego uruchamiania OnFailure . Ten przykładowy kontener uruchamia skrypt języka Python, który domyślnie analizuje tekst Hamlet szekspira, zapisuje 10 najczęściej używanych słów do stDOUT, a następnie kończy działanie.

Uruchom przykładowy kontener za pomocą następującego polecenia az container create :

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

Usługa Azure Container Instances uruchamia kontener, a następnie zatrzymuje go, gdy znajdująca się w nim aplikacja (lub, jak w tym przypadku, skrypt) kończy działanie. Gdy Azure Container Instances zatrzymuje kontener, którego zasady ponownego uruchamiania to Never lub OnFailure, stan kontenera ma wartość Zakończono. Stan kontenera można sprawdzić za pomocą polecenia az container show :

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

Przykładowe dane wyjściowe:

"Terminated"

Gdy stan przykładowego kontenera ma wartość Zakończono, możesz wyświetlić jego dane wyjściowe zadania, wyświetlając dzienniki kontenera. Uruchom polecenie az container logs , aby wyświetlić dane wyjściowe skryptu:

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

Dane wyjściowe:

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

W tym przykładzie pokazano dane wyjściowe wysyłane przez skrypt do stDOUT. Konteneryzowane zadania mogą jednak zamiast tego zapisywać dane wyjściowe w magazynie trwałym na potrzeby późniejszego pobierania. Na przykład do udziału plików platformy Azure.

Następne kroki

Scenariusze oparte na zadaniach, takie jak przetwarzanie wsadowe dużego zestawu danych z kilkoma kontenerami, mogą korzystać z niestandardowych zmiennych środowiskowych lub wierszy poleceń w czasie wykonywania.

Aby uzyskać szczegółowe informacje na temat utrwalania danych wyjściowych kontenerów uruchamianych do ukończenia, zobacz Instalowanie udziału plików platformy Azure przy użyciu Azure Container Instances.