Exercício – controlar o comportamento de reinício

Concluído

A facilidade e a velocidade de implementação de contentores no Azure Container Instances é uma ótima escolha para realizar tarefas de execução única, como a composição de imagens ou a composição e o teste de aplicações.

Com uma política de reinício configurável, pode especificar que os contentores são parados quando os seus processos são concluídos. Uma vez que as instâncias de contentor são faturadas ao segundo, são cobrados apenas os recursos de computação utilizados enquanto o contentor executa a tarefa.

O que são políticas de reinício do contentor?

O Azure Container Instances tem três opções de política de reinício:

Política de reinício Description
Always (Sempre) Os contentores no grupo de contentores são sempre reiniciados. Esta política faz sentido para tarefas de longa execução, como um servidor Web. Essa configuração é o padrão aplicado quando nenhuma política de reinicialização é especificada na criação do contêiner.
Never (Nunca) Os contentores no grupo de contentores nunca são reiniciados. Os contentores só são executados uma vez.
OnFailure (Em Caso de Falha) Os contentores no grupo de contentores são reiniciados apenas quando o processo executado no contentor falha (quando termina com um código de saída diferente de zero). Os contentores são executados, pelo menos, uma vez. Esta política funciona bem para contentores que executam tarefas de vida útil curta.

Executar um contentor até ao fim

Para ver a política de reinicialização em ação, crie uma instância de contêiner a partir da imagem de contêiner azuredocs/aci-wordcount e especifique a política de reinicialização OnFailure. Este contentor executa um script de Python que analisa o texto do Hamlet de Shakespeare, escreve as 10 palavras mais comuns na saída padrão e, em seguida, é fechado.

  1. Execute este az container create comando para iniciar o contêiner:

    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
    

    O Azure Container Instances inicia o contentor e, em seguida, para-o quando o respetivo processo (um script, neste caso) é fechado. Quando o Azure Container Instances para um contentor cuja política de reinício é Nunca ou OnFailure, o estado do contentor é definido como Terminado.

  2. Execute az container show para verificar o status do contêiner:

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

    Repita o comando até alcançar o estado Terminated (Terminado).

  3. Execute az container logs para exibir os logs do contêiner para examinar a saída:

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

    Você obtém esta saída:

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