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

É possível 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, siga estas etapas:

  1. Use o comando gcloud app instances enable-debug para depurar as VMs de uma determinada instância e versão da maneira a seguir:
    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 desta 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 "Instâncias" do Console do GCP do seu projeto:

    Acessar a página "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 da lista suspensa.

  3. Neste momento, você estará no host da instância, que tem vários contêineres em execução. Consulte 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. Consulte 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…

Ambiente flexível do App Engine para Go