Conexión a una instancia de aplicación para solucionar problemas
Nota:
Los planes Básico, Estándar y Enterprise quedarán en desuso a partir de mediados de marzo de 2025, con un período de retirada de 3 años. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte el anuncio Retirada de Azure Spring Apps.
El plan Estándar por consumo y dedicado quedará en desuso a partir del 30 de septiembre de 2024, con un cierre completo después de seis meses. Se recomienda realizar la transición a Azure Container Apps. Para más información, consulte Migrar el plan Estándar por consumo y dedicado de Azure Spring Apps a Azure Container Apps.
La información de este artículo puede ponerse en práctica en: ✔️ Básico o Estándar ✔️ Enterprise
En este artículo se describe cómo acceder al entorno de shell dentro de las instancias de la aplicación para realizar la solución de problemas avanzada.
Aunque Azure Spring Apps ofrece varios enfoques de solución de problemas administrados, es posible que desee realizar una solución de problemas avanzada mediante el entorno de shell. Por ejemplo, puede que quiera realizar las siguientes tareas de solución de problemas:
- Usar directamente las herramientas del Kit de desarrollo de Java (JDK).
- Diagnosticar los servicios back-end de una aplicación para la conexión de red y la latencia de llamadas API para instancias de red virtual y que no son de red virtual.
- Diagnosticar problemas de capacidad de almacenamiento, rendimiento y CPU/memoria.
Requisitos previos
CLI de Azurecon la extensión Azure Spring Apps. Use el siguiente comando para quitar las versiones anteriores e instalar la extensión más reciente: Si ya ha instalado la extensión
spring-cloud
, desinstálela para evitar errores de coincidencia de la configuración y la versión.az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Una aplicación implementada en Azure Spring Apps.
Si ha implementado un contenedor personalizado, un programa de shell. El valor predeterminado es
/bin/sh
.
Asignación de un rol de Azure
Antes de conectarse a una instancia de aplicación, se le debe conceder el rol Rol de conexión de Azure Spring Apps. La conexión a una instancia de aplicación requiere el permiso de acción de datos Microsoft.AppPlatform/Spring/apps/deployments/connect/action
.
Puede asignar un rol de Azure mediante Azure Portal o la CLI de Azure.
Siga estos pasos para asignar un rol de Azure mediante Azure Portal.
Abra Azure Portal.
Abra la instancia de servicio existente de Azure Spring Apps.
Seleccione Control de acceso (IAM) en el menú izquierdo.
En la barra de comandos, seleccione Agregar y, luego, Agregar asignación de roles.
Busque Rol de conexión de Azure Spring Apps en la lista y, a continuación, seleccione Siguiente.
Elija Seleccionar miembros y busque su nombre de usuario.
Seleccione Revisar y asignar.
Conexión a una instancia de aplicación
Puede conectarse a una instancia de aplicación mediante Azure Portal o la CLI de Azure.
Siga estos pasos para conectarse a una instancia de aplicación mediante Azure Portal.
Abra Azure Portal.
Abra la instancia de servicio existente de Azure Spring Apps.
Seleccione Aplicaciones en el menú de la izquierda y, luego, seleccione una de las aplicaciones.
Seleccione Consola en el menú de la izquierda.
Seleccione una instancia de aplicación.
Seleccione o escriba un shell para ejecutarlo en el contenedor.
Seleccione Conectar.
Solución de problemas de la instancia de aplicación
Después de conectarse a una instancia de la aplicación, puede comprobar el estado de la memoria del montón.
Use el siguiente comando para buscar el identificador de proceso de Java, que suele ser 1
:
jps
La salida debería tener un aspecto similar al ejemplo siguiente:
A continuación, use el siguiente comando para ejecutar la herramienta JDK para comprobar el resultado:
jstat -gc 1
La salida debería tener un aspecto similar al ejemplo siguiente:
Desconexión de la instancia de la aplicación
Cuando haya terminado de solucionar problemas, use el comando exit
para desconectar de la instancia de la aplicación o presione Ctrl+d
.
Herramienta para la solución de problemas
En la lista siguiente se describen algunas de las herramientas preinstaladas que puede usar para solucionar problemas:
lsof
: enumera los archivos abiertos.top
: muestra información de resumen del sistema y uso actual.ps
: obtiene una instantánea del proceso en ejecución.netstat
: imprime las conexiones de red y las estadísticas de interfaz.nslookup
: consulta los servidores de nombres de Internet de forma interactiva.ping
: comprueba si se puede acceder a un host de red.nc
: lee y escribe en conexiones de red mediante TCP o UDP.wget
: permite descargar archivos e interactuar con las API de REST.df
: muestra la cantidad de espacio en disco disponible.
También puede usar herramientas agrupadas de JDK, como jps
, jcmd
y jstat
.
En la lista siguiente se muestran las herramientas disponibles, que dependen del plan de servicio y del tipo de implementación de la aplicación:
- Implementación de código fuente, JAR y artefactos:
- Plan Básico, Estándar y Estándar por consumo y dedicado:
- Herramientas comunes: sí
- Herramientas de JDK: sí, solo para cargas de trabajo de Java.
- Plan Enterprise:
- Herramientas comunes: depende de la pila del sistema operativo que haya elegido en el generador. Sí, para la pila completa del sistema operativo. No, para la pila base del sistema operativo.
- Herramientas de JDK: sí, solo para cargas de trabajo de Java.
- Plan Básico, Estándar y Estándar por consumo y dedicado:
- Implementación de imágenes personalizadas: depende del conjunto de herramientas instalado en la imagen.
Nota:
Las herramientas de JDK no se incluyen en la ruta de acceso para el tipo de implementación de código fuente. Ejecute export PATH="$PATH:/layers/tanzu-buildpacks_microsoft-openjdk/jdk/bin"
antes de ejecutar los comandos JDK.
Limitaciones
El uso del entorno de shell dentro de las instancias de la aplicación tiene las siguientes limitaciones:
Dado que la aplicación se ejecuta como un usuario no raíz, no se pueden ejecutar algunas acciones que requieran permiso raíz. Por ejemplo, no puede instalar nuevas herramientas mediante el administrador de paquetes del sistema
apt / yum
.Dado que algunas funcionalidades de Linux están prohibidas, las herramientas que requieren privilegios especiales, como
tcpdump
, no funcionan.