Como depurar uma instância

Você pode ativar o modo de depuração de uma VM. Nesse modo, os membros do projeto com os papéis de proprietário, editor e administrador do App Engine têm acesso raiz à VM. Enquanto ele estiver ativado, a implementação automática das atualizações do sistema operacional e dos patches de segurança permanecerá desativada. No entanto, a VM ainda fará parte do pool do balanceador de carga e continuará a receber solicitações externas.

Sempre que você ativar ou desativar a depuração, um evento "ativar/desativar depuração de instância de VM" será exibido no Console do Google Cloud Platform. Esse evento será registrado no arquivo /var/log/syslog.log da VM.

Como ativar e desativar o modo de depuração

Você pode usar o gcloud para ativar e desativar o modo de depuração de uma instância.

Para ativar e desativar o modo de depuração no gcloud, faça o seguinte:

  1. Use o comando gcloud app instances enable-debug para depurar as VMs de uma determinada instância e versão da seguinte maneira:
    gcloud app --project [PROJECT-ID] instances enable-debug
    Substitua PROJECT-ID pelo código do seu projeto e siga as instruções para especificar a versão da instância a ser depurada.
  2. Quando terminar de depurar a instância, desative o modo de depuração da seguinte maneira:
    gcloud app --project [PROJECT-ID] instances disable-debug
    Siga as instruções para especificar a versão da instância.

Quando você desabilita o modo de depuração, a VM é interrompida e uma nova instância do app é iniciada e executada em uma nova VM limpa.

Como se conectar à instância

Console

Para se conectar a uma instância no console, faça o seguinte:

  1. Acesse a página de instâncias do console do GCP do seu projeto:
    Acessar a página de instâncias
  2. Clique em SSH na extremidade direita da linha que contém a instância que você quer acessar:

    Isso coloca a instância no modo de depuração e abre uma sessão SSH para ela em uma janela de terminal.

    Você também pode selecionar diferentes opções para iniciar uma sessão SSH a partir da lista suspensa.

  3. Neste momento, você estará no host da instância, que tem vários contêineres em execução. Veja a seção Noções básicas sobre contêineres comuns abaixo para mais detalhes.
  4. Na janela de terminal, liste os contêineres em execução na instância:
    sudo docker ps
  5. O resultado do comando sudo docker ps lista todos os contêineres por linha. Localize a linha que contém o código do projeto: é esse o contêiner que está executando seu código. Observe o NAME do contêiner.
  6. Você também pode listar as informações de registro do seu aplicativo. Para isso, basta chamar:
    sudo docker logs [CONTAINER-NAME]
  7. Inicie um shell no contêiner que está executando seu código:
    sudo docker exec -it [CONTAINER-NAME] /bin/bash
  8. Quando terminar a depuração, digite exit para sair do contêiner. Depois, digite exit novamente para sair da sessão SSH.
  9. Desative a depuração da sua instância para permitir que ela retome a operação normal.

gcloud

Para se conectar a uma instância usando o gcloud, faça o seguinte:

  1. Com a instância ativada para depuração, invoque o comando:
    gcloud beta app instances --project [PROJECT-ID] ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
  2. Neste momento, você estará no host da instância, que tem vários contêineres em execução. Veja a seção Noções básicas sobre contêineres comuns abaixo para mais detalhes.
  3. Na janela de terminal, liste os contêineres em execução na instância:
    sudo docker ps
  4. O resultado do comando sudo docker ps lista todos os contêineres por linha. Localize a linha que contém o código do projeto: é esse o contêiner que está executando seu código. Observe o NAME do contêiner.
  5. Você também pode listar as informações de registro do seu aplicativo. Para isso, basta chamar:
    sudo docker logs [CONTAINER-NAME]
  6. Inicie um shell no contêiner que está executando seu código:
    docker exec -it [CONTAINER-NAME] /bin/bash
  7. Quando terminar a depuração, digite exit para sair do contêiner. Depois, digite exit novamente para sair da sessão SSH.
  8. Desative a depuração da sua instância para permitir que ela retome a operação normal.

Noções básicas sobre contêineres comuns

Além do contêiner que está executando o código do seu aplicativo, sua instância também pode ter os seguintes contêineres:

Contêiner e código-fonte Org. de código aberto Descrição
fluentd_logger fluentd.org/ Agente do Logging.
memcache_proxy código aberto do proxy do memcache Fornece funcionalidade de memcache para o aplicativo.
nginx_proxy nginx.org Funciona como proxy para as solicitações enviadas ao aplicativo.
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentos do ambiente flexível do App Engine para Python