Depurar um serviço do Cloud Run no Cloud Code para VS Code
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Cloud Code para VS Code permite depurar facilmente um aplicativo implantado no
Cloud Run usando 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 requer um
aplicativo do Cloud Run pronto para o Cloud Code
que inclua um arquivo de configuração skaffold.yaml e um arquivo launch.json do
tipo cloudcode.cloudrun.
Depurar seu 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 do contêiner,
uma porta de contêiner, uma identidade para o serviço usar, um número de CPUs dedicadas
ou uma quantidade de memória para alocar a cada instância de contêiner, clique em
Mostrar as configurações avançadas do serviço e especifique os valores.
(Opcional) Para especificar variáveis de ambiente,
clique em Mostrar configurações avançadas do serviço, em Variáveis de ambiente e especifique os valores.
(Opcional) Para especificar conexões do Cloud SQL, clique em Conexões e especifique uma conexão por linha.
(Opcional) Para que o VS Code restabeleça uma sessão de depuração depois de salvar uma
mudança no código, marque a caixa de seleção
Recriar e executar automaticamente nas alterações.
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 você salva uma alteração no aplicativo, o Cloud Code o implanta 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.
Para um controle mais preciso do ponto de interrupção, use a seção Pontos de interrupção na visualização de depuração do VS Code.
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.
Open URL:abra o URL do serviço do aplicativo de um serviço
específico 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ê receber o código de erro BUILD_DOCKER_UNKNOWN, isso indica um
problema com o Docker. Para resolver esse problema, execute uma ou mais das seguintes
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.
Use a extensão Uso do disco
do Docker para recuperar espaço.
Detalhes da configuração
O Cloud Code processa os seguintes detalhes de configuração específicos da linguagem:
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:
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:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-01 UTC."],[[["\u003cp\u003eCloud Code for VS Code simplifies debugging applications deployed to Cloud Run using \u003ccode\u003eskaffold debug\u003c/code\u003e, eliminating the need for manual setup like port forwarding.\u003c/p\u003e\n"],["\u003cp\u003eDebugging requires a Cloud Code-ready Cloud Run application with \u003ccode\u003eskaffold.yaml\u003c/code\u003e and a \u003ccode\u003elaunch.json\u003c/code\u003e file of type \u003ccode\u003ecloudcode.cloudrun\u003c/code\u003e, which you can further customize.\u003c/p\u003e\n"],["\u003cp\u003eThe debugging process can be initiated via the VS Code command palette using the \u003cstrong\u003eDebug on Cloud Run Emulator\u003c/strong\u003e command, offering various configuration options like builder type, service settings, and environment variables.\u003c/p\u003e\n"],["\u003cp\u003eCloud Code automatically handles language-specific debugger configurations for Node.js, Python, Go, Java, and .NET, ensuring seamless debugging experiences.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting container-building issues, such as the \u003ccode\u003eBUILD_DOCKER_UNKNOWN\u003c/code\u003e error, can often be resolved by restarting Docker or managing disk space using tools like Docker's Disk Usage extension.\u003c/p\u003e\n"]]],[],null,["# Debug a Cloud Run service in Cloud Code for VS Code\n\nCloud Code for VS Code lets you easily debug an application deployed to\nCloud Run by leveraging\n[`skaffold debug`](https://skaffold.dev/docs/workflows/debug). For detailed\ninformation about Skaffold debugging, see\n[Debugging with Skaffold](https://skaffold.dev/docs/workflows/debug/).\n\nYou don't need to complete manual setup like setting up port forwarding or\ninjecting language-specific debug arguments. Debugging requires a\nCloud Code-ready Cloud Run application\nthat includes a `skaffold.yaml` configuration file and a `launch.json` file of\ntype `cloudcode.cloudrun`.\n\nDebug your Cloud Run service\n----------------------------\n\nTo debug your service, follow these steps:\n\n1. To run your service and attach a debugger session to it, open the\n command palette (press `Ctrl`/`Cmd`+`Shift`+`P` or click **View** \\\u003e\n **Command Palette** )\n and then run the **Debug on Cloud Run Emulator** command.\n\n2. In the Run/Debug on Cloud Run Emulator dialog, set the\n specifications for your configuration:\n\n - Choose Docker or Buildpacks as your builder and then specify your Dockerfile or Buildpack.\n - (Optional) To specify a Dockerfile target or build arguments, click **Show Advanced Build Settings** and then specify the target or arguments.\n - (Optional) To specify a custom service name, container image URL, container port, identity for the service to use, number of dedicated CPUs, or amount of memory to allocate to each container instance, click **Show Advanced Service Settings** and then specify the values.\n - (Optional) To specify any [environment variables](/code/docs/vscode/develop-service#optional_customizing_your_configuration), click **Show Advanced Service Settings** , click **Environment Variables**, and then specify the values.\n - (Optional) To specify Cloud SQL connections, click **Connections** and then specify one connection per line.\n - (Optional) To have VS Code reestablish a debugging session after you save a change to your code, check the **Automatically re-build and re-run on changes** checkbox.\n\n If you want to further customize how your service is run, you can edit\n [your `launch.json` file](/code/docs/vscode/develop-service#customizing_an_existing_launchjson_configuration)\n directly.\n3. To begin debugging your service, click **Debug**.\n\n4. If prompted, [authenticate your credentials to run and debug an\n application locally](/code/docs/vscode/install#authenticate_credentials_for_debugging_applications_locally).\n\n5. For each debuggable container in your service, confirm or enter the directory\n in the remote container where the program you'd like to debug is found.\n\n Alternatively, you can press `ESC` to skip debugging a container.\n\n Cloud Code attaches a debug session for each debuggable\n container in the service.\n\n\n By default, when you save a change to your application,\n Cloud Code redeploys your application and sets up a new debug\n session. You can toggle this feature with the `watch` flag in your project's\n launch configuration.\n\n6. To add a breakpoint, click in the editor margin of the file you're debugging.\n\n Red filled circles signify active breakpoints and gray hollow circles\n signify disabled breakpoints.\n\n For finer breakpoint control, you can use the Breakpoints section in VS\n Code's Debug view.\n\n When you send a new request to your service, it pauses at the line you\n specified.\n7. After your session completes, right-click to use the following commands:\n\n - **View Logs:** Open the application logs of a specific deployment with the Cloud Code Logs Explorer\n - **Open URL:** Open the application service URL of a specific service in a web browser\n8. If you've turned off watch mode in your launch configuration and you want to\n make changes to your application and rebuild and redeploy the application,\n click the Cloud Code status bar and then click\n **Turn on watch mode**.\n\n9. If you want to inspect variables and stack info, use the\n [Debug Sidebar](https://code.visualstudio.com/Docs/editor/debugging).\n To interact with the debugging session, use the\n [Debug Console](https://code.visualstudio.com/Docs/editor/debugging#_debug-console-repl)\n in the bottom pane debugger.\n\n10. To stop your deployment, click the **Stop** button in the action bar for your\n current deployment.\n\n### Troubleshoot container-building issues\n\nIf you're getting the `BUILD_DOCKER_UNKNOWN` error code, this indicates a\nproblem with Docker. To resolve this issue, perform one or more of the following\ntasks:\n\n- Restart Docker and try building the container again.\n\n- If you're still getting the same error after restarting, Docker could be\n running out of disk space. To learn more about cleaning up unused objects in\n Docker, see [Prune unused Docker objects](https://docs.docker.com/config/pruning/#prune-unused-docker-objects).\n\n- Try Docker's [Disk Usage](https://hub.docker.com/extensions/docker/disk-usage-extension)\n extension to help reclaim space.\n\nConfiguration details\n---------------------\n\nCloud Code handles the following language-specific configuration\ndetails: \n\n### Node.js\n\nRewriting the entrypoint to invoke:\n\n`node --inspect=localhost:9229`\n\n### Python\n\nInstalling the `ptvsd` module using an Init Container and rewriting the\nentrypoint to invoke:\n\n`python -m ptvsd --host localhost --port 5678`\n\n### Go\n\nInstalling the\n[`dlv` debugger](https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv.md)\nusing an Init Container and rewriting the entrypoint such that the launched\ndebug session runs with a debug server only (in headless mode), continues the\ndebugged process on start, accepts multiple client connections, and listens at\n`localhost:56268`:\n\n`dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, \u003capp\u003e --`\n\n### Java\n\nAdding an environment `JAVA_TOOLS_OPTIONS` with the appropriate Java Debug\nWire Protocol (JDWP) configuration such that the JDWP debugging agent listens\nfor a socket connection on port 5005 and allows the VM to begin executing\nbefore the debugger is attached:\n\n`jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y`\n\n### .NET\n\n.NET Core applications are configured to be deployed along with `vsdbg` for VS\nCode.\n\nIf you encounter problems with the automatic configuration, see\n[Detailed debugger configuration and setup](https://skaffold.dev/docs/workflows/debug/#detailed-debugger-configuration-and-setup)\nfor help troubleshooting.\n\nGet Support\n-----------\n\nTo send feedback, report issues on [GitHub](https://github.com/GoogleCloudPlatform/cloud-code-vscode/issues), or ask a question on [Stack Overflow](https://stackoverflow.com/questions/ask?tags=cloud-code-vscode)."]]