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.

Za pomocą konfigurowalnych zasad ponownego uruchamiania można określić, że kontenery są zatrzymywane po zakończeniu ich procesów. Ponieważ platforma Azure rozlicza wystąpienia kontenerów według sekundy, opłaty są naliczane tylko za zasoby obliczeniowe używane podczas wykonywania zadania przez kontener.

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 usłudze 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. Te zasady są ustawieniem domyślnym zastosowanym, gdy podczas tworzenia kontenera nie określono żadnych zasad 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 interfejs wiersza polecenia platformy Azure, polecenia cmdlet programu Azure PowerShell lub w witrynie Azure Portal. W interfejsie wiersza polecenia platformy Azure określ --restart-policy 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 aci-wordcount firmy Microsoft 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 usługa 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 wyjście:

"Terminated"

Jeśli stan przykładowego kontenera ma wartość Terminated (Przerwany), możesz wyświetlić dane wyjściowe zadania, przeglądając dzienniki kontenerów. Uruchom polecenie az container logs, aby wyświetlić dane wyjściowe skryptu:

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

Wyjście:

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

W tym przykładzie przedstawiono 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 za pomocą usługi Azure Container Instances.