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:
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.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.Para começar a depurar o seu serviço, clique em Depurar.
Se lhe for pedido, autentique as suas credenciais para executar e depurar uma aplicação localmente.
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.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.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.
Quando envia um novo pedido ao seu serviço, este é pausado na linha que especificou.
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
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.
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.
Para parar a implementação, clique no botão Parar na barra de ações da implementação atual.
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.