Taken in containers uitvoeren met beleid voor opnieuw opstarten
Het gemak en de snelheid waarmee containers in Azure Container Instances worden geïmplementeerd, zorgt voor een aantrekkelijk platform voor het uitvoeren van eenmalige taken zoals bouwen, testen en rendering van afbeeldingen in een containerinstantie.
Met een configureerbaar beleid voor opnieuw opstarten kunt u opgeven dat uw containers worden gestopt wanneer hun processen zijn voltooid. Omdat Azure containerinstanties per seconde factureert, worden er alleen kosten in rekening gebracht voor de rekenresources die worden gebruikt terwijl de container die uw taak uitvoert, wordt uitgevoerd.
In de voorbeelden in dit artikel wordt de Azure CLI gebruikt. U moet Azure CLI versie 2.0.21 of hoger lokaal hebben geïnstalleerd of de CLI gebruiken in Azure Cloud Shell.
Beleid voor opnieuw opstarten van containers
Wanneer u een containergroep maakt in Azure Container Instances, kunt u een van de drie beleidsinstellingen voor opnieuw opstarten opgeven.
Beleid voor opnieuw opstarten | Beschrijving |
---|---|
Always |
Containers in de containergroep worden altijd opnieuw gestart. Dit beleid is de standaardinstelling die wordt toegepast wanneer er geen beleid voor opnieuw opstarten is opgegeven bij het maken van de container. |
Never |
Containers in de containergroep worden nooit opnieuw gestart. De containers worden maximaal één keer uitgevoerd. |
OnFailure |
Containers in de containergroep worden alleen opnieuw gestart als het proces in de container mislukt (wanneer deze wordt afgesloten met een andere afsluitcode dan nul). De containers worden ten minste één keer uitgevoerd. |
Notitie
Als uw containergroep is geconfigureerd met een IP-adres, kan dat IP-adres worden gewijzigd wanneer de containergroep opnieuw wordt opgestart.
Beleid voor opnieuw opstarten opgeven
Hoe u een beleid voor opnieuw opstarten opgeeft, is afhankelijk van hoe u uw containerinstanties maakt, zoals met de Azure CLI, Azure PowerShell-cmdlets of in Azure Portal. Geef in de Azure CLI de --restart-policy
parameter op wanneer u az container create aanroept.
az container create \
--resource-group myResourceGroup \
--name mycontainer \
--image mycontainerimage \
--restart-policy OnFailure
Voorbeeld van uitvoeren tot voltooiing
Als u het beleid voor opnieuw opstarten in actie wilt zien, maakt u een containerinstantie op basis van de installatiekopieën van Microsoft aci-wordcount en geeft u het OnFailure
beleid voor opnieuw opstarten op. In deze voorbeeldcontainer wordt een Python-script uitgevoerd dat standaard de tekst van Shakespeare's Hamlet analyseert, de 10 meest voorkomende woorden naar STDOUT schrijft en vervolgens wordt afgesloten.
Voer de voorbeeldcontainer uit met de volgende opdracht 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 start de container en stopt deze wanneer de toepassing (of het script in dit geval) wordt afgesloten. Wanneer Azure Container Instances een container stopt waarvan het beleid voor opnieuw opstarten is Never
of OnFailure
, wordt de status van de container ingesteld op Beëindigd. U kunt de status van een container controleren met de opdracht az container show :
az container show \
--resource-group myResourceGroup \
--name mycontainer \
--query containers[0].instanceView.currentState.state
Voorbeelduitvoer:
"Terminated"
Wanneer de status van de voorbeeldcontainer Beëindigd is, kunt u de taakuitvoer zien door de containerlogboeken te bekijken. Voer de opdracht az container logs uit om de uitvoer van het script te bekijken:
az container logs --resource-group myResourceGroup --name mycontainer
Uitvoer:
[('the', 990),
('and', 702),
('of', 628),
('to', 610),
('I', 544),
('you', 495),
('a', 453),
('my', 441),
('in', 399),
('HAMLET', 386)]
In dit voorbeeld ziet u de uitvoer die het script naar STDOUT heeft verzonden. Uw in containers geplaatste taken kunnen echter in plaats daarvan hun uitvoer naar permanente opslag schrijven voor later ophalen. Bijvoorbeeld naar een Azure-bestandsshare.
Volgende stappen
Op taken gebaseerde scenario's, zoals batchverwerking van een grote gegevensset met verschillende containers, kunnen tijdens runtime profiteren van aangepaste omgevingsvariabelen of opdrachtregels.
Zie Koppeling van een Azure-bestandsshare met Azure Container Instances voor meer informatie over het behouden van de uitvoer van uw containers die tot voltooiing worden uitgevoerd.