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/actionde 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.

  1. Abra o portal do Azure.

  2. Abra sua instância de serviço existente do Azure Spring Apps.

  3. Selecione Controle de acesso (IAM) no menu à esquerda.

  4. Selecione Adicionar na barra de comandos e, em seguida, selecione Adicionar atribuição de função.

    Captura de tela da página Controle de Acesso (IAM) mostrando o comando Adicionar atribuição de função.

  5. Procure Função do Azure Spring Apps Connect na lista e selecione Avançar.

    Captura de ecrã da página Adicionar atribuição de função a mostrar a Função Azure Spring Apps Connect.

  6. Selecione Selecionar membros e procure seu nome de usuário.

  7. 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.

  1. Abra o portal do Azure.

  2. Abra sua instância de serviço existente do Azure Spring Apps.

  3. Selecione Aplicações no menu esquerdo e, em seguida, selecione uma das suas aplicações.

  4. Selecione Console no menu à esquerda.

  5. Selecione uma instância de aplicativo.

    Captura de ecrã da página Consola do portal do Azure a mostrar uma instância da aplicação.

  6. Selecione ou insira um shell para ser executado no contêiner.

    Captura de tela da página Console do portal do Azure mostrando uma entrada do Shell Personalizado.

  7. Selecione Ligar.

    Captura de ecrã da página da Consola do portal do Azure a mostrar o comando 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:

Captura de tela mostrando a saída do comando jps.

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:

Captura de tela mostrando a saída do comando jstat.

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, jcmde 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.
  • 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 / yumde pacotes do sistema.

  • Como alguns recursos do Linux são proibidos, ferramentas que exigem privilégios especiais, como tcpdump, não funcionam.

Próximos passos