Köra uppgifter i containrar med principer för omstart
Eftersom det går snabbt att distribuera containrar i Azure Container Instances är det en bra plattform för att köra engångsuppgifter som att skapa, testa och återge avbildningar i en containerinstans.
Med en konfigurerbar omstartsprincip kan du ange att dina containrar ska stoppas när deras processer har slutförts. Eftersom du faktureras per sekund för containerinstanser debiteras du endast för de beräkningsresurser som används när containern kör dina uppgifter.
Exemplen som visas i den här artikeln använder Azure CLI. Du måste ha Azure CLI version 2.0.21 eller senare installerat lokalt,eller använda CLI i Azure Cloud Shell.
Omstartsprincip för container
När du skapar en containergrupp i Azure Container Instances kan du ange en av tre principinställningar för omstart.
| Omstartsprincip | Beskrivning |
|---|---|
Always |
Containrar i containergruppen startas alltid om. Det här är standardvärdet som används om du inte anger någon omstartsprincip när du skapar containern. |
Never |
Containrar i containergruppen startas aldrig om. Containers körs högst en gång. |
OnFailure |
Containrar i containergruppen startas bara om när processen som körs i containern inte slutförs utan fel (när den avslutas med en annan slutkod än noll). Containrar körs minst en gång. |
Anteckning
Om din behållar grupp har kon figurer ATS med en IP-adress kan den här IP-adressen ändras när behållar gruppen startas om.
Ange en omstartsprincip
Hur du anger en omstartsprincip beror på hur du skapar dina containerinstanser, till exempel med Azure CLI, Azure PowerShell-cmdlets eller i Azure Portal. I Azure CLI anger du parametern --restart-policy när du anropar az container create.
az container create \
--resource-group myResourceGroup \
--name mycontainer \
--image mycontainerimage \
--restart-policy OnFailure
Exempel på körning till slutförande
Om du vill se omstartsprincipen i praktiken skapar du en containerinstans från Microsoft aci-wordcount-avbildningen och anger OnFailure omstartsprincipen. Den här exempelcontainern kör ett Python-skript som som standard analyserar texten i Script's Script,skriver de 10 vanligaste orden till STDOUT och avslutas sedan.
Kör exempelcontainern med följande az container create-kommando:
az container create \
--resource-group myResourceGroup \
--name mycontainer \
--image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
--restart-policy OnFailure
Azure Container Instances startar containern och stoppar den när appen (eller skriptet i det här fallet) avslutas. När Azure Container Instances stoppar en container vars omstartsprincip Never är eller , anges OnFailure containerns status till Avslutad. Du kan kontrollera statusen för en container med kommandot az container show:
az container show \
--resource-group myResourceGroup \
--name mycontainer \
--query containers[0].instanceView.currentState.state
Exempel på utdata:
"Terminated"
När exempelcontainerns status blir Avslutad kan du se utdata för uppgiften i containerloggarna. Kör kommandot az container logs för att visa skriptets utdata:
az container logs --resource-group myResourceGroup --name mycontainer
Utdata:
[('the', 990),
('and', 702),
('of', 628),
('to', 610),
('I', 544),
('you', 495),
('a', 453),
('my', 441),
('in', 399),
('HAMLET', 386)]
Det här exemplet visar de utdata som skriptet skickade till STDOUT. Dina containeruppgifter kan dock i stället skriva sina utdata till beständig lagring för senare hämtning. Till exempel till en Azure-filresurs.
Nästa steg
Uppgiftsbaserade scenarier, till exempel batchbearbetning av en stor datamängd med flera containrar, kan dra nytta av anpassade miljövariabler eller kommandorader vid körning.
Mer information om hur du sparar utdata från containrar som körs tills de är klara finns i Montera en Azure-filresurs med Azure Container Instances.