Spuštění kontejnerizovaných úkolů se zásadami restartování

Nasazení kontejnerů ve službě Azure Container Instances je jednoduché a rychlé. Proto je tato platforma vhodná pro úkoly, které se spouští jen jednou, jako je sestavení, testování nebo vykreslení image v instanci kontejneru.

Konfigurovatelné zásady restartování umožňují nastavit, aby se kontejnery po dokončení procesů zastavily. Instance kontejnerů se účtují po sekundách. Proto se vám účtují jenom výpočetní prostředky používané po dobu, kdy kontejner běží a provádí vaši úlohu.

Příklady uvedené v tomto článku používají rozhraní příkazového řádku Azure CLI. Musíte mít místně nainstalovanouverzi Azure CLI 2.0.21 nebo novější, nebo můžete použít rozhraní příkazového řádku v Azure Cloud Shell.

Zásady restartování kontejneru

Při vytváření skupiny kontejnerů v Azure Container Instances můžete zadat jedno ze tří nastavení zásad restartování.

Zásada restartování Popis
Always Kontejnery ve skupině kontejnerů se restartují vždy. Jde o výchozí nastavení, které se použije vždy, když při vytvoření kontejneru nezadáte zásadu restartování.
Never Kontejnery ve skupině kontejnerů se nerestartují nikdy. Kontejnery se spouštějí nejvýše jednou.
OnFailure Kontejnery ve skupině se restartují jen v případě, že proces spuštěný v kontejneru nebude úspěšný (když skončí nenulovým ukončovacím kódem). Kontejnery se spouštějí aspoň jednou.

Poznámka

Pokud je vaše skupina kontejnerů nakonfigurovaná s IP adresou, tato IP adresa se může změnit při restartování skupiny kontejnerů.

Zadat zásady restartování

Způsob, jakým určíte zásady restartování, závisí na tom, jak vytváříte instance kontejnerů, například pomocí rutin Azure CLI, Azure PowerShell rutin nebo v Azure Portal. V Azure CLI zadejte --restart-policy parametr při volání AZ Container Create.

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

Příklad spuštění do dokončení

Chcete-li zobrazit zásady restartování v akci, vytvořte instanci kontejneru z image Microsoft ACI-WORDCOUNT a určete OnFailure zásady restartování. V tomto ukázkovém kontejneru se spustí skript Pythonu, který ve výchozím nastavení analyzuje text HamletuShakespeare, zapisuje 10 nejčastějších slov do stdout a pak se ukončí.

Spusťte vzorový kontejner pomocí následujícího příkazu AZ Container Create :

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

Azure Container Instances spustí kontejner a po skončení aplikace (v tomto případě skriptu) ho zastaví. Když Azure Container Instances zastaví kontejner, jehož zásada restartování je Never nebo OnFailure , stav kontejneru je nastaven na ukončeno. Stav kontejneru můžete zjistit pomocí příkazu AZ Container show :

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

Příklad výstupu:

"Terminated"

Jakmile se stav ukázkového kontejneru zobrazí jako ukončeno, můžete zobrazit jeho výstup jeho úkolů zobrazením protokolů kontejnerů. Spuštěním příkazu AZ Container logs zobrazíte výstup skriptu:

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

Výstup:

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

Tento příklad ukazuje výstup, který skript odeslal do STDOUT. Vaše kontejnerové úlohy však mohou místo toho zapsat výstup do trvalého úložiště pro pozdější načtení. Například do sdílené složky Azure.

Další kroky

Scénáře založené na úlohách, například dávkové zpracování velké datové sady s několika kontejnery, mohou využívat vlastní proměnné prostředí nebo příkazové řádky za běhu.

Podrobnosti o tom, jak zachovat výstup kontejnerů, které se spouští k dokončení, najdete v tématu připojení sdílené složky Azure pomocí Azure Container Instances.