Com o Cloud Code, pode depurar os seus serviços do Cloud Run localmente num ambiente semelhante ao Cloud Run. Pode definir pontos de interrupção, percorrer o código passo a passo e depurar serviços remotos executados em contentores.
O Cloud Code também lhe permite depurar uma aplicação enquanto faz alterações e itera no código-fonte.
Definir a configuração de depuração
Antes de depurar o seu serviço, tem de criar a configuração de depuração:
- Navegue para o seletor de configuração Executar/Depurar na barra de navegação e clique em Editar configurações.
- Escolha Cloud Run: Run Locally em Cloud Code: Cloud Run.
- Clique em OK.
Depurar o seu serviço
Para depurar o seu serviço, siga estes passos:
- Clique em  Depurar para Cloud Run: Run Locally para iniciar o ciclo de desenvolvimento no modo de depuração. Depurar para Cloud Run: Run Locally para iniciar o ciclo de desenvolvimento no modo de depuração.  
- O Cloud Code anexa uma sessão de depuração. Quando for bem-sucedido, a janela da ferramenta de depuração é aberta, confirmando a ligação (no separador Consola). 
- Clique na margem na linha executável do código onde quer adicionar um ponto de interrupção. - Os círculos preenchidos a vermelho indicam pontos de interrupção ativos, enquanto os círculos vazios com contorno vermelho indicam pontos de interrupção desativados. 
- Para aceder ao serviço em execução, clique no URL apresentado no painel Registo de eventos. - Quando o faz, é enviado um novo pedido para o seu serviço e este é pausado na linha marcada com o ponto de interrupção.  
- Para terminar a sessão de depuração, clique no ícone de paragem na configuração de execução do Cloud Run: Run Locally. 
IDEs suportados
A tabela seguinte apresenta os idiomas e os IDEs que o Cloud Code suporta para a depuração. A tabela também lista os plug-ins necessários, quando aplicável:
| Idioma | IDEs e edições suportadas | Plugin necessário | 
|---|---|---|
| Java | IntelliJ IDEA Ultimate | N/A | 
| IntelliJ IDEA Community | N/A | |
| Go | IntelliJ IDEA Ultimate | Plugin Go | 
| GoLand | N/A | |
| Node.js | IntelliJ IDEA Ultimate | Plug-in Node.js | 
| WebStorm | N/A | |
| Python | IntelliJ IDEA Ultimate | Plugin Python | 
| PyCharm Professional | N/A | 
Para mais informações sobre o apoio técnico de IDEs, consulte o artigo IDEs JetBrains suportados.
Com o Cloud Code, pode definir pontos de interrupção e depurar aplicações remotas executadas em contentores para os seguintes idiomas:
Java
O Cloud Code adiciona automaticamente uma variável de ambiente,
JAVA_TOOL_OPTIONS, com a configuração JDWP adequada para
ativar a depuração. Se JAVA_TOOL_OPTIONS já estiver presente, o Cloud Code usa as definições existentes especificadas em JAVA_TOOL_OPTIONS.
Node.js
Consoante a estrutura da sua aplicação e a configuração de compilação de imagens, pode ter de ajudar o depurador a mapear as suas origens locais para as origens remotas no contentor. Isto permite que o depurador do Node processe corretamente os seus pontos de interrupção.
Pode configurar esta opção de uma das seguintes formas:
- Configuração manual - Selecione a configuração de execução Cloud Run: Run Locally no menu pendente e, de seguida, clique em Editar configurações. No separador Depurar, configure o mapeamento de origem da origem da aplicação local para a localização de origem no contentor remoto.  - Opções de configuração: - Ficheiro/diretório: o ficheiro ou o diretório local da sua aplicação em execução no Cloud Run.
- Caminho remoto: o caminho para o ficheiro ou o diretório em execução no contentor no Cloud Run.
 
- Configuração automática - Pode optar por diferir este mapeamento para o Cloud Code. Quando inicia a sessão de depuração, o Cloud Code tenta inferir este mapeamento automaticamente. O mapeamento inferido é apresentado num diálogo; um diálogo para cada artefacto que está a depurar.  - Opções de configuração: - Caminho local: o caminho local para a raiz do artefacto que está a depurar.
- Caminho remoto: o caminho para o ficheiro ou o diretório em execução no contentor no Cloud Run. Pode optar por substituir este valor pelo seu. Se clicar em Cancelar, não é aplicado nenhum mapeamento.
 
Go
Para configurar a sua aplicação para depuração, a app tem de ser uma aplicação baseada em módulos Go e ser identificada como baseada em Go através da definição de uma das variáveis de ambiente de tempo de execução Go padrão no contentor, como GODEBUG, GOGC, GOMAXPROCS ou GOTRACEBACK. GOTRACEBACK=single é a predefinição para o Go
e GOTRACEBACK=all é uma configuração geralmente útil.
Opcionalmente (mas recomendado), a sua app deve ser criada com as opções -gcflags='all=-N -l' para desativar as otimizações. Os perfis do Skaffold são uma opção útil para este fim e podem ser definidos com o campo Perfil de implementação no separador Compilar/Implementar da configuração de execução.
Python
Para configurar a sua aplicação para depuração, certifique-se de que cumpre os seguintes pré-requisitos:
- O IDE, a edição e o plug-in são compatíveis - Para ver os IDEs, as edições e os plug-ins compatíveis, consulte o artigo IDEs suportados. 
- A versão do Skaffold é 1.25.0 ou superior - Pode permitir que o Cloud Code faça a gestão das suas dependências, ou apontar para uma instalação local do Skaffold. Consulte Preferências > Ferramentas > Cloud Code > Dependências. 
- O intérprete Python está configurado - Sem um intérprete Python configurado no seu projeto, a depuração não funciona, uma vez que não existe forma de executar o - pydevd, o depurador Python subjacente.- IDE - Como configurar - IntelliJ IDEA - A depuração de Python com o Cloud Code requer a configuração de um SDK Python para o seu projeto. 
 Aceda a Ficheiro > Estrutura do projeto e adicione um SDK Python no separador Projeto. Se não existir nenhum, adicione um no separador SDK.- PyCharm - Aceda a File > Settings > Project > Python Interpreter ou para Mac OS X, PyCharm > Preferences > Project > Python Interpreter e adicione um intérprete Python. 
Para mais informações, consulte a documentação de depuração do Skaffold.