Com o Cloud Code para Cloud Shell, é fácil depurar um aplicativo implantado em
o Cloud Run, aproveitando o
skaffold debug
Para informações detalhadas
sobre a depuração do Skaffold, consulte
Como depurar com o Skaffold.
Você não precisa concluir a configuração manual, como a configuração
do encaminhamento de portas ou a injeção de argumentos de depuração específicos da linguagem. A depuração exige uma
Aplicativo do Cloud Run pronto para o Cloud Code
que inclui um arquivo de configuração skaffold.yaml
e um arquivo launch.json
de
digite cloudcode.cloudrun
.
Depurar o serviço do Cloud Run
Para depurar o serviço, siga estes passos:
Para executar o serviço e anexar uma sessão do depurador a ele, abra a paleta de comandos (pressione
Ctrl
/Cmd
+Shift
+P
ou clique em Visualizar > Paleta de comandos) e execute o comando Debug no Cloud Run Emulator.Na caixa de diálogo "Run/Debug no Cloud Run Emulator", defina as especificações para sua configuração:
- Escolha Docker ou Buildpacks como seu builder e, em seguida, especifique seu Dockerfile ou Buildpack.
- (Opcional) Para especificar um destino do Dockerfile ou argumentos de build, clique em Mostrar configurações avançadas de build e especifique o destino ou os argumentos.
- (Opcional) Para especificar um nome de serviço personalizado, um URL de imagem de contêiner porta de contêiner, identidade para uso do serviço, número de CPUs dedicadas, ou a quantidade de memória para alocar a cada instância de contêiner, clique Show Advanced Service Settings e especifique os valores.
- (Opcional) Para especificar variáveis de ambiente, Clique em Mostrar configurações avançadas de serviço e em Variáveis de ambiente. e, em seguida, especificar os valores.
- (Opcional) Para especificar conexões do Cloud SQL, clique em Conexões e especifique uma conexão por linha.
Se você quiser personalizar ainda mais a execução do serviço, edite diretamente o arquivo
launch.json
.Para iniciar a depuração do serviço, clique em Depurar.
Para cada contêiner depurável do seu serviço, confirme ou insira o diretório no contêiner remoto em que o programa que você quer depurar é encontrado.
Como alternativa, pressione
ESC
para pular a depuração de um contêiner.O Cloud Code anexa uma sessão de depuração para cada contêiner depurável no serviço.
Por padrão, quando uma alteração no aplicativo é salva automaticamente, o Cloud Code implanta o aplicativo novamente e configura uma nova sessão de depuração. Alterne esse recurso com a sinalização
watch
na configuração de inicialização do seu projeto.Para adicionar um ponto de interrupção, clique na margem do editor do arquivo que você está depurando.
Os círculos preenchidos em vermelho indicam pontos de interrupção ativos.
Quando você envia uma nova solicitação ao serviço, ela é pausada na linha especificada.
Depois que a sessão for concluída, clique com o botão direito do mouse para usar os seguintes comandos:
- Acessar registros: abra os registros do aplicativo de uma implantação específica com o Explorador de registros do Cloud Code.
- Abrir URL: abre o URL do serviço de aplicativo de um serviço em um navegador da Web
Se você desativou o modo de exibição na configuração de inicialização e quer fazer alterações no aplicativo e recriá-lo e reimplantá-lo, clique na barra de status do Cloud Code e em Ativar o modo de exibição.
Para inspecionar variáveis e informações de pilha, use a barra lateral de depuração. Para interagir com a sessão, use o Console de depuração (em inglês) no depurador do painel inferior.
Para interromper a implantação, clique no botão Interromper na barra de ações da implantação atual
Resolver problemas de criação de contêineres
Se você está recebendo o código de erro BUILD_DOCKER_UNKNOWN
, isso indica uma
com o Docker. Para resolver esse problema, execute uma ou mais das seguintes ações:
tarefas:
Reinicie o Docker e tente criar o contêiner novamente.
Se você ainda receber o mesmo erro após a reinicialização, o Docker pode estar sem espaço em disco. Para saber mais sobre como limpar objetos não usados no Docker, consulte Podar objetos Docker não usados.
Teste o Uso de disco do Docker para ajudar a liberar espaço.
Detalhes da configuração
O Cloud Code processa as seguintes configurações específicas da linguagem detalhes:
Node.js
Como reescrever o ponto de entrada para invocar:
node --inspect=localhost:9229
Python
Instale o módulo ptvsd
usando um contêiner init e reescrevendo o
ponto de entrada para invocar:
python -m ptvsd --host localhost --port 5678
Go
Instalar o depurador dlv
usando um contêiner de inicialização e reescrever o ponto de entrada para que a sessão de depuração iniciada seja executada somente com um servidor de depuração (no modo headless) o processo depurado no início, aceita várias conexões de clientes e escuta 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 apropriada do Java Debug
Wire (JDWP) para que o agente de depuração JDWP detecte
uma conexão de soquete na porta 5005 e permita que a VM comece a ser executada
antes do depurador anexado:
jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y
.NET
Os aplicativos .NET Core estão configurados para serem implantados com o vsdbg
para VS
Código.
Se você tiver problemas com a configuração automática, consulte Configuração e configuração detalhadas do depurador para resolver problemas.