19 de maio de 20264 min de leitura

Simplificando o Debugging de Aplicações Python no Azure App Service com Novos Atalhos SSH

(autor não identificado)

Azure

Banner - Simplificando o Debugging de Aplicações Python no Azure App Service com Novos Atalhos SSH

TL;DR: Agilizando diagnósticos no Azure App Service

Este artigo apresenta uma nova coleção de comandos (aliases) SSH agora disponíveis de forma nativa no Azure App Service para Linux. A ferramenta transforma diagnósticos complexos e manuais em comandos de uma única palavra. A conclusão é que, ao utilizar esses helpers, times de engenharia ganham eficiência para identificar a causa raiz de falhas (como DNS, conectividade AI ou dependências faltantes) sem a necessidade de reconstruir containers ou executar comandos sequenciais manuais e propensos a erros.


Você realizou o deploy de uma aplicação Python no App Service. O software passou no ambiente de desenvolvimento e funciona perfeitamente localmente. No entanto, em produção, o endpoint /chat retorna erros 502, enquanto /health responde positivamente, os logs não indicam nada e é impossível reproduzir o incidente na sua máquina local.

O que você realmente precisa é de um shell direto no container para investigar DNS, environment variables, pacotes instalados e o endpoint de IA que a aplicação consome. Embora o SSH já fosse uma opção no Azure, o "playbook" tradicional de abrir uma conexão e executar dezenas de comandos era um conhecimento fragmentado dentro dos times.

Diagnóstico no terminal

Recentemente, a Microsoft disponibilizou um conjunto de SSH helper aliases que transformam esse conhecimento em comandos de uma única palavra. O apphelp exibe a lista completa de aliases disponíveis. Ferramentas como appconfig, showpkgs e appcurl cobrem o lado da aplicação, enquanto comandos como ai-test, ai-diagnose, ai-dns e ai-latency facilitam a depuração em interações com Azure AI Foundry.

O setup de diagnóstico: apphelp

Após o deploy, a primeira ação dentro do container é executar o apphelp. Ele categoriza os comandos disponíveis, eliminando a necessidade de memorizar sintaxes complexas:

  • App info: showpkgs, appconfig, appenv
  • Logs: applogs, deploylogs, logfiles
  • Reachability: appcurl, checkport, gohome, gosrc
  • AI/Foundry: ai-test, ai-dns, ai-access-check, ai-curl, ai-latency, ai-diagnose
  • Network tools: install-nettools

Validando o baseline com ai-diagnose

Antes de investigar falhas, utilize o ai-diagnose. É o cheque rápido para validar se o caminho para o serviço de IA está íntegro, verificando a identidade gerenciada, resolução de DNS e latência de endpoint.

O desafio do ambiente: Sincronizando o shell com a aplicação

Um erro comum é tentar testar uma falha via SSH sem que o shell tenha acesso ao estado atual do processo da aplicação. Como o shell SSH é um processo separado, a dica de ouro é utilizar:

source /home/site/diagnostics/fault.env

Ao usar esse padrão em seu código, você garante que qualquer alteração de estado (como a injeção de uma falha de configuração) seja refletida no ambiente de depuração.

Categorização de falhas: Onde olhar?

  1. Erros de rede e endpoints (ai-dns, ai-curl): Falhas que impedem a comunicação entre o App Service e o AI Foundry.
  2. Erros que passam no ai-test, mas falham na app: Sinaliza que a plataforma está íntegra e o problema está no código ou na configuração da aplicação (ex: AZURE_CLIENT_ID incorreto ou falta de dependências no requirements.txt).

Conclusão: Uma nova workflow de debug

O uso desses aliases altera drasticamente a agilidade da equipe de engenharia. A recomendação da Nuvem Online é que times de SRE e desenvolvedores sempre comecem a depuração pelo apphelp e ai-diagnose. Entender que um ai-test positivo é um sinal de que a plataforma está operante, permitindo o "pivô" imediato para o log da aplicação, reduz drasticamente o Mean Time To Repair (MTTR).

Perguntas Frequentes

  • O que são os novos SSH helper aliases no Azure App Service?
    São uma coleção de comandos pré-configurados (como 'apphelp', 'ai-diagnose', 'ai-latency') que automatizam o acesso a logs, variáveis de ambiente e diagnósticos de conectividade de rede e serviços AI de maneira simplificada, sem exigir conhecimento tribal complexo.

  • Como identificar se a origem de uma falha é a plataforma ou o código?
    A recomendação é executar o 'ai-diagnose'. Se as verificações retornarem erro, o problema está na infraestrutura (DNS, Managed Identity ou conectividade). Se o diagnóstico estiver saudável, mas a aplicação continuar falhando, a causa reside tipicamente na configuração da aplicação ou no código.

  • Por que o meu shell SSH apresenta um ambiente diferente da aplicação?
    O shell SSH é um processo separado que herda o ambiente do container no momento da criação. Para diagnosticar a aplicação corretamente, é necessário executar 'source /home/site/diagnostics/fault.env' para carregar as variáveis de ambiente ativas que a aplicação está utilizando no runtime.


Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset