Se connecter à une instance d’application pour la résolution des problèmes
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à :✅ Essentiel/Standard ✅ Entreprise
Cet article explique comment accéder à l’environnement shell dans vos instances d’application en vue d’une résolution de problèmes avancée.
Bien qu’Azure Spring Apps propose différentes approches managées de résolution des problèmes, vous pouvez avoir besoin d’effectuer une résolution avancée des problèmes en utilisant l’environnement shell. Par exemple, vous voudrez peut-être effectuer les tâches de résolution des problèmes suivantes :
- Utiliser directement des outils du JDK (Java Development Kit).
- Faire un diagnostic des services back-end d’une application pour vérifier la connexion réseau et la latence des appels d’API dans les instances de réseau virtuel et les instances de réseau non virtuel.
- Diagnostiquer les problèmes de capacité de stockage, de performances et de processeur/mémoire.
Prérequis
Azure CLI avec l’extension Azure Spring Apps. Utilisez la commande suivante pour supprimer les versions précédentes et installer la dernière extension. Si vous avez déjà installé l’extension
spring-cloud
, désinstallez-la pour éviter les incompatibilités de configuration et de version.az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Une application déployée dans Azure Spring Apps.
Si vous avez déployé un conteneur personnalisé, un programme shell. Par défaut, il s’agit de
/bin/sh
.
Affecter un rôle Azure
Avant de vous connecter à une instance d’application, vous devez obtenir le rôle Azure Spring Apps Connect Role. La connexion à une instance d’application nécessite l’autorisation d’action de données Microsoft.AppPlatform/Spring/apps/deployments/connect/action
.
Vous pouvez attribuer un rôle en tirant partie du Portail Azure ou de l’interface Azure CLI.
Utilisez les étapes suivantes pour attribuer un rôle Azure à l’aide du Portail Azure.
Ouvrez le portail Azure.
Ouvrez votre instance de service Azure Spring Apps existante.
Sélectionnez Contrôle d’accès (IAM) dans le menu de gauche.
Dans la barre de commandes, sélectionnez Ajouter, puis Ajouter une attribution de rôle.
Recherchez Rôle Azure Spring Apps Connect dans la liste, puis sélectionnez Suivant.
Sélectionnez Sélectionner les membres, puis recherchez votre nom d’utilisateur.
Sélectionnez Vérifier + attribuer.
Connexion à une instance d’application
Vous pouvez vous connecter à une instance d’application à l’aide du portail Azure ou d’Azure CLI.
Pour vous connecter à une instance d’application à l’aide du portail Azure, effectuez les étapes suivantes.
Ouvrez le portail Azure.
Ouvrez votre instance de service Azure Spring Apps existante.
Sélectionnez Applications dans le menu de gauche, puis sélectionnez l’une de vos applications.
Sélectionnez Console dans le menu de gauche.
Sélectionnez une instance d’application.
Sélectionnez ou entrez un interpréteur de commandes à exécuter dans le conteneur.
Sélectionnez Connecter.
Résoudre les problèmes liés à votre instance d’application
Après vous être connecté à une instance d’application, vous pouvez vérifier l’état de la mémoire du segment.
Utilisez la commande suivante pour rechercher l’ID du processus Java, qui est généralement 1
:
jps
La sortie doit ressembler à cet exemple :
Ensuite, utilisez la commande suivante pour exécuter l’outil JDK afin de vérifier le résultat :
jstat -gc 1
La sortie doit ressembler à cet exemple :
Déconnexion de votre instance d’application
Lorsque vous avez terminé la résolution des problèmes, utilisez la commande exit
pour vous déconnecter de l’instance d’application, ou appuyez sur Ctrl+d
.
Outils de résolution des problèmes
La liste suivante décrit certains des outils préinstallés qui peuvent vous aider à résoudre des problèmes :
lsof
: liste les fichiers ouverts.top
: affiche les informations récapitulatives et l’utilisation actuelle du système.ps
: obtient un instantané du processus en cours d’exécution.netstat
: affiche les statistiques sur les connexions réseau et l’interface.nslookup
: interroge les serveurs de noms Internet de manière interactive.ping
: vérifie si un hôte réseau est accessible.nc
: lit et écrit sur les connexions réseau avec TCP ou UDP.wget
: vous permet de télécharger des fichiers et d’interagir avec des API REST.df
: affiche la quantité d'espace disque disponible.
Vous pouvez également utiliser des outils groupés du JDK comme jps
, jcmd
et jstat
.
La liste suivante montre les outils disponibles, qui dépendent de votre plan de service et du type de déploiement d’application :
- Déploiement du code source, du fichier JAR et des artefacts :
- Plan de consommation Essentiel, Standard et Consommation standard et dédiée :
- Outils courants : Oui
- Outils JDK : Oui, pour les charges de travail Java uniquement.
- Plan Entreprise :
- Outils courants : dépend de la pile du système d’exploitation que vous avez choisie dans votre générateur. Oui, pour la pile complète du système d’exploitation. Non, pour la pile de système d’exploitation de base.
- Outils JDK : Oui, pour les charges de travail Java uniquement.
- Plan de consommation Essentiel, Standard et Consommation standard et dédiée :
- Déploiement d’images personnalisées : dépend de l’ensemble d’outils installé dans votre image.
Remarque
Les outils JDK ne sont pas inclus dans le chemin du type de déploiement de code source. Exécutez export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin"
avant d’exécuter des commandes JDK.
Limites
L’utilisation de l’environnement shell au sein de vos instances d’application présente les limitations suivantes :
Du fait que l’application s’exécute en tant qu’utilisateur non racine, vous ne pouvez pas effectuer certaines actions nécessitant une autorisation racine. Par exemple, vous ne pouvez pas installer de nouveaux outils à l’aide du gestionnaire de package système
apt / yum
.Comme certaines fonctionnalités Linux ne sont pas autorisées, les outils qui nécessitent des privilèges spéciaux, comme
tcpdump
, ne fonctionnent pas.