Depure um serviço do Cloud Run no Cloud Code para VS Code

O Cloud Code para VS Code permite-lhe depurar facilmente uma aplicação implementada no Cloud Run através da utilização do skaffold debug. Para obter informações detalhadas sobre a depuração do Skaffold, consulte o artigo Depuração com o Skaffold.

Não precisa de concluir a configuração manual, como configurar o encaminhamento de portas ou inserir argumentos de depuração específicos do idioma. A depuração requer uma aplicação do Cloud Run preparada para o Cloud Code que inclua um ficheiro de configuração skaffold.yaml e um ficheiro launch.json do tipo cloudcode.cloudrun.

Depure o seu serviço do Cloud Run

Para depurar o seu serviço, siga estes passos:

  1. Para executar o serviço e anexar-lhe uma sessão de depurador, abra a paleta de comandos (prima Ctrl/Cmd+Shift+P ou clique em Ver > Paleta de comandos) e, em seguida, execute o comando Depurar no emulador do Cloud Run.

  2. Na caixa de diálogo Executar/depurar no emulador do Cloud Run, defina as especificações da sua configuração:

    • Escolha o Docker ou os Buildpacks como criador e, em seguida, especifique o seu Dockerfile ou Buildpack.
    • (Opcional) Para especificar um destino do Dockerfile ou argumentos de compilação, clique em Mostrar definições de compilação avançadas e, de seguida, especifique o destino ou os argumentos.
    • (Opcional) Para especificar um nome de serviço personalizado, um URL da imagem do contentor, uma porta do contentor, uma identidade para o serviço usar, um número de CPUs dedicadas ou uma quantidade de memória a atribuir a cada instância do contentor, clique em Mostrar definições avançadas do serviço e, de seguida, especifique os valores.
    • (Opcional) Para especificar quaisquer variáveis de ambiente, clique em Mostrar definições avançadas do serviço, clique em Variáveis de ambiente e, de seguida, especifique os valores.
    • (Opcional) Para especificar ligações do Cloud SQL, clique em Ligações e, em seguida, especifique uma ligação por linha.
    • (Opcional) Para que o VS Code restabeleça uma sessão de depuração depois de guardar uma alteração ao código, selecione a caixa de verificação Automatically re-build and re-run on changes (Recompilar e executar automaticamente em caso de alterações).

    Se quiser personalizar ainda mais a forma como o seu serviço é executado, pode editar o seu ficheiro launch.json diretamente.

  3. Para começar a depurar o seu serviço, clique em Depurar.

  4. Se lhe for pedido, autentique as suas credenciais para executar e depurar uma aplicação localmente.

  5. Para cada contentor depurável no seu serviço, confirme ou introduza o diretório no contentor remoto onde se encontra o programa que quer depurar.

    Em alternativa, pode premir ESC para ignorar a depuração de um contentor.

    Comando de acesso root remoto

    O Cloud Code anexa uma sessão de depuração para cada contentor depurável no serviço.

    Por predefinição, quando guarda uma alteração à sua aplicação, o Cloud Code volta a implementar a aplicação e configura uma nova sessão de depuração. Pode ativar/desativar esta funcionalidade com a flag watch na configuração de lançamento do seu projeto.

  6. Para adicionar um ponto de interrupção, clique na margem do editor do ficheiro que está a depurar.

    Os círculos preenchidos a vermelho significam pontos de interrupção ativos e os círculos vazios a cinzento significam pontos de interrupção desativados.

    Para um controlo mais preciso dos breakpoints, pode usar a secção Breakpoints na vista Debug do VS Code.

    Secção de pontos de interrupção no painel do lado esquerdo da vista de depuração que permite adicionar, remover e desativar pontos de interrupção

    Quando envia um novo pedido ao seu serviço, este é pausado na linha que especificou.

  7. Após a conclusão da sessão, clique com o botão direito do rato para usar os seguintes comandos:

    • Ver registos: abra os registos da aplicação de uma implementação específica com o explorador de registos do Cloud Code
    • Abrir URL: abra o URL do serviço de aplicação de um serviço específico num navegador de Internet
  8. Se desativou o modo de observação na configuração de lançamento e quiser fazer alterações à aplicação, recompilar e voltar a implementar a aplicação, clique na barra de estado do Cloud Code e, de seguida, clique em Ativar modo de observação.

  9. Se quiser inspecionar variáveis e informações de pilha, use a barra lateral de depuração. Para interagir com a sessão de depuração, use a consola de depuração no depurador do painel inferior.

  10. Para parar a implementação, clique no botão Parar na barra de ações da implementação atual.

    Barra de ações para a implementação do Cloud Run

Resolva problemas de criação de contentores

Se estiver a receber o código de erro BUILD_DOCKER_UNKNOWN, isto indica um problema com o Docker. Para resolver este problema, realize uma ou mais das seguintes tarefas:

  • Reinicie o Docker e tente criar novamente o contentor.

  • Se continuar a receber o mesmo erro após o reinício, o Docker pode estar a ficar sem espaço em disco. Para saber como limpar objetos não usados no Docker, consulte o artigo Remova objetos do Docker não usados.

  • Experimente a extensão Utilização do disco do Docker para ajudar a recuperar espaço.

Detalhes da configuração

O Cloud Code processa os seguintes detalhes de configuração específicos do idioma:

Node.js

Reescrever o ponto de entrada para invocar:

node --inspect=localhost:9229

Python

Instalar o módulo ptvsd através de um contentor de inicialização e reescrever o ponto de entrada para invocar:

python -m ptvsd --host localhost --port 5678

Go

Instalar o depurador dlv usando um contentor de inicialização e reescrevendo o ponto de entrada de modo que a sessão de depuração iniciada seja executada apenas com um servidor de depuração (no modo sem interface), continua o processo depurado no início, aceita várias ligações de clientes e ouve em localhost:56268:

dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, <app> --

Java

Adicionar um ambiente JAVA_TOOLS_OPTIONS com a configuração do protocolo Java Debug Wire (JDWP) adequada, de modo que o agente de depuração JDWP ouça uma ligação de socket na porta 5005 e permita que a VM comece a executar antes de o depurador ser anexado:

jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y

.NET

As aplicações .NET Core estão configuradas para serem implementadas juntamente com o vsdbg para o VS Code.

Se tiver problemas com a configuração automática, consulte o artigo Configuração e configuração detalhadas do depurador para obter ajuda na resolução de problemas.

Obter apoio técnico

Para enviar feedback, comunicar problemas no GitHub ou fazer uma pergunta no Stack Overflow.