Conectar-se a uma instância de aplicativo para solucionar problemas
Observação
Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de desativação de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.
O plano consumo e dedicado Standard será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.
Este artigo se aplica a:✅ Básico/Padrão ✅ Enterprise
Este artigo descreve como acessar o ambiente de shell dentro de suas instâncias de aplicativo para uma solução de problemas avançada.
Embora os Aplicativos Spring do Azure ofereçam várias abordagens gerenciadas de solução de problemas, uma solução de problemas avançada usando o ambiente de shell talvez seja recomendável. Por exemplo, talvez seja recomendável realizar as seguintes tarefas de solução de problemas:
- Use diretamente as ferramentas do JDK (kit de desenvolvimento Java).
- Diagnostique os serviços de back-end de um aplicativo para conexão de rede e a latência de chamada de API para instâncias de rede virtual e não virtual.
- Diagnostique problemas de capacidade de armazenamento, desempenho e CPU/memória.
Pré-requisitos
CLI do Azure com a extensão dos Aplicativos Spring do Azure. Use o comando a seguir para remover versões anteriores e instalar a extensão mais recente. Se você instalou a extensão
spring-cloud
anteriormente, desinstale-a para evitar incompatibilidades de configuração e versão.az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Um aplicativo implantado nos Aplicativos Spring do Azure.
Se você tiver implantado um contêiner personalizado, um programa de shell. O padrão é
/bin/sh
.
Atribuir uma função do Azure
Antes de se conectar a uma instância de aplicativo, você deve receber a função Função de conexão de Aplicativos Spring do Azure. A conexão a uma instância de aplicativo requer a permissão Microsoft.AppPlatform/Spring/apps/deployments/connect/action
de ação de dados.
Você pode atribuir uma função do Azure através do portal do Azure ou da CLI do Azure.
Use as seguintes etapas para atribuir uma função do Azure usando o portal do Azure.
Abra o Portal do Azure.
Abra sua instância de serviço existente do Azure Spring Apps.
Selecione Controle de acesso (IAM) no menu à esquerda.
Selecione Adicionar na barra de comandos e, em seguida, selecione Atribuição de função.
Pesquise Função de Conexão dos Aplicativos Spring do Azure na lista e selecione Avançar.
Selecione Selecionar membros e pesquise pelo seu nome de usuário.
Selecione Revisar + atribuir.
Conectar-se a uma instância de aplicativo
Você pode se conectar a uma instância de aplicativo usando o portal do Microsoft Azure ou a CLI do Azure.
Siga as etapas a seguir para se conectar a uma instância de aplicativo usando o portal do Microsoft Azure.
Abra o Portal do Azure.
Abra sua instância de serviço existente do Azure Spring Apps.
Selecione Aplicativos no menu à esquerda e escolha um dos seus aplicativos.
Selecione Console no menu à esquerda.
Selecione uma instância de aplicativo.
Selecione ou insira um shell para executar no contêiner.
Selecione Conectar.
Solucionar problemas da instância de aplicativo
Depois de se conectar a uma instância de aplicativo, você pode verificar o status da memória de heap.
Use o seguinte comando para localizar a ID do processo Java, que geralmente é 1
:
jps
A saída deve ser semelhante ao exemplo a seguir:
Em seguida, use o seguinte comando para executar a ferramenta JDK a fim de verificar o resultado:
jstat -gc 1
A saída deve ser semelhante ao exemplo a seguir:
Desconectar-se da instância do aplicativo
Quando terminar de solucionar problemas, use o comando exit
para se desconectar da instância de aplicativo ou pressione Ctrl+d
.
Ferramentas de solução de problemas
A lista a seguir descreve algumas das ferramentas pré-instaladas que você pode usar para solucionar problemas:
lsof
– Lista arquivos abertos.top
– Exibe informações de resumo e utilização atual do sistema.ps
– Obtém um instantâneo do processo em execução.netstat
– Imprime as conexões de rede e as estatísticas de interface.nslookup
– Consulta servidores de nomes da Internet interativamente.ping
– Testa se um host de rede pode ser acessado.nc
– Lê e grava em conexões de rede usando TCP ou UDP.wget
– Permite baixar arquivos e interagir com APIs REST.df
– Exibe a quantidade de espaço em disco disponível.
Também é possível usar ferramentas agrupadas pelo JDK como jps
, jcmd
e jstat
.
A lista a seguir mostra as ferramentas disponíveis, que dependem do seu plano de serviço e tipo de implantação do aplicativo:
- Implantação do Código-Fonte, JAR e artefatos:
- Plano Básico, Standard e Standard de Consumo e Dedicado:
- Ferramentas comuns - Sim
- Ferramentas do JDK - SIM, apenas para cargas de trabalho Java.
- Plano Enterprise:
- Ferramentas comuns - Depende da pilha de SO que você escolheu no seu construtor. Sim, para a pilha completa de SO. Não, para a pilha base de SO.
- Ferramentas do JDK - SIM, apenas para cargas de trabalho Java.
- Plano Básico, Standard e Standard de Consumo e Dedicado:
- Implantação de imagem personalizada: Depende do conjunto de ferramentas instalado na sua imagem.
Observação
As ferramentas do JDK não estão incluídas no caminho para o tipo de implantação de código-fonte. Execute export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin"
antes de executar quaisquer comandos do JDK.
Limitações
Usar o ambiente shell dentro das instâncias do seu aplicativo tem as seguintes limitações:
Como o aplicativo está em execução como um usuário não raiz, você não pode executar algumas ações que exigem permissão raiz. Por exemplo, você não pode instalar novas ferramentas usando o gerenciador de pacotes do sistema
apt / yum
.Como alguns recursos do Linux são proibidos, ferramentas que exigem privilégios especiais, como
tcpdump
, não funcionam.