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 starten kunt u opgeven dat uw containers worden gestopt wanneer hun processen zijn voltooid. Omdat containerinstanties per seconde worden gefactureerd, betaalt u alleen voor de rekenresources die worden gebruikt terwijl de container waar uw taak wordt uitgevoerd actief is.
In de voorbeelden in dit artikel wordt gebruikgemaakt van de Azure CLI. Azure CLI versie 2.0.21 of hoger moet lokaal zijn geïnstalleerd of de CLI gebruiken in de Azure Cloud Shell.
Beleid voor het opnieuw opstarten van containers
Wanneer u een containergroep maakt in Azure Container Instances, kunt u een van drie beleidsinstellingen voor opnieuw opstarten opgeven.
Beleid voor opnieuw starten | Beschrijving |
---|---|
Always |
Containers in de containergroep worden altijd opnieuw gestart. Dit is de standaardinstelling die wordt toegepast wanneer er geen beleid voor opnieuw starten wordt opgegeven bij het maken van een 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 gestart.
Een beleid voor opnieuw opstarten opgeven
Hoe u beleid voor opnieuw opstarten opgeeft, is afhankelijk van hoe u uw containerinstanties maakt, zoals met de Azure CLI, Azure PowerShell cmdlets of in de 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 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 tien 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 of OnFailure
isNever
, 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 containertaken kunnen echter in plaats daarvan hun uitvoer naar de 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 meerdere containers, kunnen profiteren van aangepaste omgevingsvariabelen of opdrachtregels tijdens runtime.
Zie Een Azure-bestandsshare koppelen met Azure Container Instances voor meer informatie over het behouden van de uitvoer van uw containers die tot voltooiing worden uitgevoerd.