O Cloud Code for IntelliJ permite-lhe depurar facilmente as suas aplicações implementadas num cluster do Kubernetes. Pode depurar uma aplicação num cluster local (como o minikube ou o Docker Desktop), no Google Kubernetes Engine ou em qualquer outro fornecedor de nuvem.
Com o apoio técnico de depuração do Cloud Code, ignora 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 da forma correta. Só precisa de uma aplicação Kubernetes pronta para o Cloud Code que inclua um ficheiro de configuração skaffold.yaml
.
O Cloud Code também lhe permite depurar uma aplicação enquanto faz alterações e itera no código-fonte.
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 Develop on Kubernetes 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 Kubernetes.
- Caminho remoto: o caminho para o ficheiro ou o diretório em execução no contentor no Kubernetes.
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 Kubernetes. 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.
Depure uma aplicação
Para iniciar o ciclo de desenvolvimento no modo de depuração no seu cluster do Kubernetes, clique na ação de depuração para
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, pode realizar as tarefas que faz normalmente quando depura código local, como definir pontos de interrupção e percorrer o código passo a passo, num cluster do Kubernetes em direto.
Para terminar a sessão de depuração, clique no ícone de paragem na configuração de execução Develop on Kubernetes.
O que se segue?
- Use a sincronização de ficheiros e o recarregamento rápido para acelerar o desenvolvimento.
- Configure um ambiente de desenvolvimento contínuo no Cloud Code.
- Ver registos do Kubernetes no Cloud Code.