Usando o Cloud Code para IntelliJ, você depura facilmente seus aplicativos implantados em um cluster do Kubernetes. É possível depurar um aplicativo em um cluster local (como minikube ou Docker Desktop), no Google Kubernetes Engine ou em qualquer outro provedor de nuvem.
Com o suporte à depuração do Cloud Code, você pula corretamente a configuração manual, como
a configuração do encaminhamento de portas, a instalação de um back-end de depuração ou a injeção
de argumentos de depuração específicos da linguagem. Tudo o que você precisa é de um
aplicativo do Kubernetes pronto para o Cloud Code que inclua um
arquivo de configuração skaffold.yaml
.
O Cloud Code também permite depurar um aplicativo enquanto faz alterações e itera no código-fonte.
IDEs compatíveis
A tabela a seguir lista 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 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
Na lista suspensa, selecione Develop on Kubernetes Run Configuration 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.
Opções de configuração:
- File/directory: o arquivo ou diretório local do aplicativo em execução no Kubernetes.
- Caminho remoto: o caminho para o arquivo ou diretório em execução no contêiner no Kubernetes.
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.
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 Kubernetes. É 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 (em inglês).
Depurar um aplicativo
Para iniciar o ciclo de desenvolvimento no modo de depuração no cluster do Kubernetes, clique na ação de depuração do Desenvolver no Kubernetes.
O ciclo de desenvolvimento contínuo é iniciado no modo de depuração.
O Cloud Code anexa uma sessão de depuração:
Agora é possível realizar as tarefas que você normalmente faz ao depurar código local, como definir pontos de interrupção e avançar o código, em um cluster ativo do Kubernetes.
Para encerrar a sessão de depuração, clique no ícone de parada na configuração de execução Desenvolver no Kubernetes.
A seguir
- Use a sincronização de arquivos e a recarga automática para acelerar o desenvolvimento.
- Configure um ambiente de desenvolvimento contínuo no Cloud Code.
- Veja os registros do Kubernetes no Cloud Code.