Depurar um serviço em execução localmente no Cloud Code para IntelliJ

Com o Cloud Code, é possível depurar os serviços do Cloud Run localmente em um ambiente semelhante ao Cloud Run. É possível definir pontos de interrupção, percorrer seu código e depurar serviços remotos em execução nos contêineres.

O Cloud Code também permite depurar um aplicativo enquanto faz alterações e itera no código-fonte.

Como definir a configuração de depuração

Antes de depurar o serviços, é preciso criar a configuração de depuração:

  1. Navegue até o seletor de configuração Executar/depurar na barra de navegação e clique em Editar configurações.
  2. Selecione Cloud Run: Executar localmente no Cloud Code: Cloud Run.
  3. Clique em OK.

Como depurar o serviço

Para depurar o serviço, siga estes passos:

  1. Clique em ícone de ação de depuração Depurar em Cloud Run: executar localmente para iniciar o ciclo de desenvolvimento no modo de depuração.

    Clique em "Executar" no Cloud Run: executar localmente no modo de depuração

  2. O Cloud Code anexará uma sessão de depuração. Quando a operação for bem-sucedida, a janela "Ferramenta de depuração" será aberta, confirmando a conexão (na guia "Console").

  3. Clique na divisão na linha executável do código em que você quer adicionar um ponto de interrupção.

    Os círculos preenchidos em vermelho indicam pontos de interrupção ativos, enquanto os círculos vazios destacados em vermelho indicam pontos de interrupção desativados.

  4. Para acessar seu serviço em execução, clique no URL exibido no painel de log de eventos.

    Ao fazer isso, uma nova solicitação é enviada ao serviço e interrompida na linha marcada com ponto de interrupção.

    Log de eventos com notificação e URL de implantação de sucesso para visualizar o serviço

  5. Para encerrar a sessão de depuração, clique no ícone de parada na configuração do Cloud Run: executar localmente.

IDEs compatíveis

Na tabela a seguir, listamos as linguagens e os ambientes de desenvolvimento integrado compatíveis com o Cloud Code para depuração. A tabela também lista os plug-ins necessários, quando aplicável:

Idioma Ambientes de desenvolvimento integrado e edições compatíveis Plug-in necessário
Java IntelliJ IDEA Ultimate N/A
Comunidade do IntelliJ IDEA N/A
Go IntelliJ IDEA Ultimate Plug-in do Go
GoLand N/A
Node.js IntelliJ IDEA Ultimate Plug-in do Node.js
WebStorm N/A
Python IntelliJ IDEA Ultimate Plug-in do Python
Profissional de PyCharm N/A

Para mais informações sobre o suporte a ambientes de desenvolvimento integrado, consulte Ambientes de desenvolvimento integrado do JetBrains compatíveis.

Com o Cloud Code, é possível definir pontos de interrupção e depurar aplicativos remotos em execução nos contêineres das seguintes linguagens:

Java

O Cloud Code adiciona automaticamente uma variável de ambiente, JAVA_TOOL_OPTIONS, com a configuração de JDWP apropriada para ativar a depuração. Se JAVA_TOOL_OPTIONS já estiver presente, o Cloud Code usará as configurações especificadas em JAVA_TOOL_OPTIONS.

Node.js

Dependendo da estrutura do aplicativo e da configuração de criação da imagem, talvez seja necessário ajudar o depurador a mapear as fontes locais para as fontes remotas no contêiner. Isso permite que o depurador de nós processe corretamente seus pontos de interrupção.

É possível configurar isso de uma das seguintes maneiras:

  • Configuração manual

    Selecione o Cloud Run: Run Locally Run Configuration no menu suspenso e clique em Edit Configurations. Na guia Depurar, configure o mapeamento de origem da origem do aplicativo local para o local de origem no contêiner remoto.

    Escolher um local de origem na seção de mapeamento de origem da guia "Depuração"

    Opções de configuração:

    • Arquivo/diretório: o arquivo ou diretório local do aplicativo em execução no Cloud Run.
    • Caminho remoto: o caminho para o arquivo ou diretório em execução no contêiner no Cloud Run.
  • Configuração automática

    É possível adiar o mapeamento para o Cloud Code. Quando você inicia a sessão de depuração, o Cloud Code tenta inferir esse mapeamento automaticamente. O mapeamento inferido é apresentado em uma caixa de diálogo; Uma caixa de diálogo para cada artefato que você está depurando.

    Caixa de diálogo de mapeamento de caminho remoto para cada artefato, especificando o caminho remoto que está sendo usado

    Opções de configuração:

    • Caminho local: o caminho local para a raiz do artefato que você está depurando.
    • Caminho remoto: o caminho para o arquivo ou diretório em execução no contêiner no Cloud Run. É possível modificá-lo por seu próprio valor. Se você clicar em Cancelar, nenhum mapeamento será aplicado.

Go

Para configurar seu aplicativo para depuração, seu app precisa ser um aplicativo baseado em módulo Go e ser identificado como baseado em Go definindo um dos padrãos Variáveis de ambiente de execução do Go no contêiner, como GODEBUG, GOGC, GOMAXPROCS ou GOTRACEBACK. GOTRACEBACK=single é a configuração padrão para Go e GOTRACEBACK=all é uma configuração geralmente útil.

Como opção, mas recomendado, seu app precisa ser criado com as opções -gcflags='all=-N -l' para desativar as otimizações. Os perfis do Skaffold são uma opção útil para isso. Eles podem ser definidos com o campo Perfil de implantação na sua configuração do Run no Guia Build/Deploy.

Python

Para configurar seu aplicativo para depuração, verifique se você atende aos seguintes pré-requisitos:

  • IDE, edição e plug-in são compatíveis

    Para ver ambientes de desenvolvimento integrado, edições e plug-ins compatíveis, consulte Ambientes de desenvolvimento integrado compatíveis.

  • A versão do Skyffold é 1.25.0 ou mais recente.

    É possível permitir que o Cloud Code gerencie suas dependências ou aponte para uma instalação local do Skaffold. Consulte Preferências > Ferramentas > Cloud Code > Dependências.

  • O interpretador do Python está configurado

    Sem um interpretador do Python configurado no projeto, a depuração não funcionará, porque não há como executar a pydevd, o depurador do Python subjacente.

    IDE Como configurar
    IntelliJ IDEA A depuração do Python com o Cloud Code requer que um SDK do Python seja configurado para o projeto.

    Acesse File > Project Structure e adicione um SDK Python na guia Project. Se não existir, adicione uma na guia SDK.
    PyCharm Acesse File > Settings > Project > Python Interpreter ou para Mac OS X, PyCharm > Preferences > Project > Python Interpreter e adicione um interpretador do Python. de dados.

Para mais informações, consulte a documentação de depuração do Skaffold.

Receba ajuda

Para enviar um feedback ou informar um problema no ambiente de desenvolvimento integrado do IntelliJ, acesse Tools > Cloud Code > Help / About > Envie feedback ou informe um problema para informar um problema no GitHub ou faça uma pergunta no Stack Overflow.