Conectar-se a uma instância de aplicativo para solução de problemas
Nota
Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado 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 obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
Este artigo aplica-se a: ✔️ Basic/Standard ✔️ Enterprise
Este artigo descreve como acessar o ambiente de shell dentro de suas instâncias de aplicativo para fazer a solução de problemas avançada.
Embora o Azure Spring Apps ofereça várias abordagens de solução de problemas gerenciadas, convém fazer a solução de problemas avançada usando o ambiente de shell. Por exemplo, talvez você queira realizar as seguintes tarefas de solução de problemas:
- Use diretamente as ferramentas do Java Development Kit (JDK).
- Diagnostique os serviços back-end de um aplicativo para conexão de rede e 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 Azure Spring Apps. Use o comando a seguir para remover versões anteriores e instalar a extensão mais recente. Se você instalou
spring-cloud
a extensão 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 no Azure Spring Apps.
Se você implantou um contêiner personalizado, um programa shell. A predefiniçã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 Azure Spring Apps Connect Role. A conexão com 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 usando o portal do Azure ou a CLI do Azure.
Use as etapas a seguir 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 Adicionar atribuição de função.
Procure Função do Azure Spring Apps Connect na lista e selecione Avançar.
Selecione Selecionar membros e procure seu nome de usuário.
Selecione Rever + atribuir.
Conectar-se a uma instância do aplicativo
Você pode se conectar a uma instância de aplicativo usando o portal do Azure ou a CLI do Azure.
Use as etapas a seguir para se conectar a uma instância de aplicativo usando o portal do Azure.
Abra o portal do Azure.
Abra sua instância de serviço existente do Azure Spring Apps.
Selecione Aplicações no menu esquerdo e, em seguida, selecione uma das suas aplicações.
Selecione Console no menu à esquerda.
Selecione uma instância de aplicativo.
Selecione ou insira um shell para ser executado no contêiner.
Selecione Ligar.
Solucionar problemas da instância do aplicativo
Depois de se conectar a uma instância do aplicativo, você pode verificar o status da memória de pilha.
Use o seguinte comando para localizar o 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 para verificar o resultado:
jstat -gc 1
A saída deve ser semelhante ao exemplo a seguir:
Desconectar da instância do aplicativo
Quando terminar a solução de problemas, use o exit
comando para se desconectar da instância do aplicativo ou pressione Ctrl+d
.
Ferramentas de resoluçã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 do sistema e utilização atual.ps
- Obtém um instantâneo do processo em execução.netstat
- Imprime conexões de rede e estatísticas de interface.nslookup
- Consulta servidores de nomes de internet de forma interativa.ping
- Testa se um host de rede pode ser alcançado.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.
Você também pode 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 do tipo de implantação do aplicativo:
- Implantação de código-fonte, JAR e artefatos:
- Consumo Básico, Padrão e Padrão & Plano Dedicado:
- Ferramentas comuns - Sim
- Ferramentas JDK - Sim, apenas para cargas de trabalho Java.
- Plano Empresarial:
- Ferramentas comuns - Depende de qual pilha de sistema operacional você escolheu em seu construtor. Sim, para o Full OS Stack. Não, para o SO base Stack.
- Ferramentas JDK - Sim, apenas para cargas de trabalho Java.
- Consumo Básico, Padrão e Padrão & Plano Dedicado:
- Implantação de imagem personalizada: depende do conjunto de ferramentas instaladas na imagem.
Nota
As ferramentas JDK não estão incluídas no caminho para o tipo de implantação do código-fonte . Execute export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin"
antes de executar qualquer comando JDK.
Limitações
Usar o ambiente de shell dentro de suas instâncias de aplicativo tem as seguintes limitações:
Como o aplicativo está sendo executado como um usuário não-root, você não pode executar algumas ações que exigem permissão de root. Por exemplo, não é possível instalar novas ferramentas usando o gerenciador
apt / yum
de pacotes do sistema.Como alguns recursos do Linux são proibidos, ferramentas que exigem privilégios especiais, como
tcpdump
, não funcionam.