Oefening: gedrag voor opnieuw opstarten bepalen

Voltooid

Dankzij het gemak en de snelheid waarmee containers in Azure Container Instances worden geïmplementeerd, is het zeer geschikt voor het uitvoeren van eenmalige taken zoals het weergeven, bouwen en testen van installatiekopieën.

Met een configureerbaar beleid voor opnieuw opstarten 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.

Wat is beleid voor het opnieuw starten van een container?

Azure Container Instances heeft drie beleidsopties voor opnieuw starten:

Beleid voor opnieuw opstarten Beschrijving
Altijd Containers in de containergroep worden altijd opnieuw gestart. Dit beleid is zinvol voor langlopende taken, zoals een webserver. Deze instelling is de standaardinstelling die wordt toegepast wanneer er geen beleid voor opnieuw opstarten wordt opgegeven bij het maken van de container.
Nooit Containers in de containergroep worden nooit opnieuw gestart. De containers worden slechts éé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. Dit beleid werkt goed voor containers met kortstondige taken.

Een container uitvoeren tot voltooiing

Als u het beleid voor opnieuw opstarten in actie wilt zien, maakt u een containerinstantie op basis van de containerinstallatiekopie azuredocs/aci-wordcount en geeft u het onFailure-beleid voor opnieuw opstarten op. In deze container wordt een Python-script uitgevoerd dat de tekst van Hamlet van Shakespeare analyseert, de 10 meest voorkomende woorden naar de standaarduitvoer schrijft en vervolgens wordt afgesloten.

  1. Voer deze az container create opdracht uit om de container te starten:

    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 start de container en stopt deze wanneer het proces (een script in dit geval) wordt afgesloten. Wanneer Azure Container Instances een container stopt waarvan het beleid voor opnieuw opstarten Never of OnFailure is, wordt de status van de container ingesteld op Beëindigd.

  2. Voer deze opdracht uit az container show om de status van uw container te controleren:

    az container show \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo \
      --query "containers[0].instanceView.currentState.state"
    

    Herhaal de opdracht totdat de container de status Beëindigd heeft.

  3. Voer deze az container logs opdracht uit om de logboeken van de container weer te geven om de uitvoer te bekijken:

    az container logs \
      --resource-group learn-deploy-aci-rg \
      --name mycontainer-restart-demo
    

    U krijgt deze uitvoer:

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