Övning – Styra omstartsbeteendet
Du kan snabbt och enkelt distribuera containrar i Azure Container Instances, vilket gör det optimalt för att köra engångsuppgifter såsom bildrendering eller utveckling och testning av program.
Du kan konfigurera en omstartsprincip, så du kan ange att containern ska stoppas när processen är slutförd. 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.
Vad är omstartsprinciper för containrar?
Azure Container Instances har tre alternativ för omstartsprinciper:
Omstartsprincip | beskrivning |
---|---|
Alltid | Containers i containergruppen startas alltid om. Den här principen är lämplig för långvariga uppgifter som en webbserver. Den här inställningen är standardinställningen när ingen omstartsprincip anges när containern skapas. |
Aldrig | Containers i containergruppen startas aldrig om. Containrarna körs bara 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). Containers körs minst en gång. Den här principen fungerar bra för containrar som kör kortvariga uppgifter. |
Köra en container
Om du vill se omstartsprincipen i praktiken skapar du en containerinstans från containeravbildningen azuredocs/aci-wordcount och anger principen för omstart av OnFailure . Den här containern kör ett Python-skript som analyserar texten i Shakespeares Hamlet, skriver ut de 10 vanligaste orden till standardutdata och avslutas sedan.
Kör det här
az container create
kommandot för att starta containern:az container create \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \ --restart-policy OnFailure \ --location eastus
Azure Container Instances startar containern och stoppar den när processen (eller skriptet i det här fallet) avslutas. När Azure Container Instances stoppar en container vars omstartsprincip är Aldrig eller OnFailure sätts containerns status till Avslutad.
Kör
az container show
för att kontrollera containerns status:az container show \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo \ --query "containers[0].instanceView.currentState.state"
Upprepa kommandot tills statusen Avslutad visas.
Kör
az container logs
för att visa containerns loggar för att undersöka utdata:az container logs \ --resource-group learn-deploy-aci-rg \ --name mycontainer-restart-demo
Du får följande utdata:
[('the', 990), ('and', 702), ('of', 628), ('to', 610), ('I', 544), ('you', 495), ('a', 453), ('my', 441), ('in', 399), ('HAMLET', 386)]