Puedes habilitar el modo de depuración para una VM. En el modo de depuración, los principales que tienen las funciones de propietario, editor y administrador de App Engine en el proyecto tienen acceso raíz a la VM. Mientras el modo de depuración está activado, el lanzamiento automático de las actualizaciones del sistema operativo y los parches de seguridad están inhabilitados. Sin embargo, la VM continúa siendo parte del grupo del balanceador de cargas y sigue recibiendo solicitudes externas.
Cada vez que habilites o inhabilites la depuración, aparecerá el evento “VM instance debugging enable/disable” en la consola de Google Cloud, y el evento se registrará en el archivo /var/log/syslog.log
de la VM.
Habilita o inhabilita el modo de depuración
Puedes habilitar o inhabilitar el modo de depuración para una instancia mediante gcloud
. Para depurar una instancia, tu rol debe contener el permiso appengine.instances.enableDebug
.
Para inhabilitar y habilitar el modo de depuración en gcloud
, haz lo siguiente:
- Usa el comando gcloud app instances enable-debug para depurar las VM de una instancia y versión en particular de la siguiente manera:
Reemplaza PROJECT-ID por tu propio ID del proyecto y sigue las indicaciones para especificar la versión de la instancia que deseas depurar.gcloud app --project PROJECT-ID instances enable-debug
-
Cuando termine la depuración, inhabilita el modo de depuración de la siguiente manera:
Sigue las indicaciones para especificar la versión de la instanciagcloud app --project PROJECT-ID instances disable-debug
Cuando inhabilitas el modo de depuración, la VM se detiene y se inicia una nueva instancia de tu aplicación, que se ejecuta en una VM nueva y limpia.
Conéctate a la instancia
Console
Para conectarte a una instancia en la consola:
Ve a la página Instancias (Instances) de consola de Google Cloud del proyecto:
Haz clic en SSH en el extremo derecho de la fila que contiene la instancia a la que deseas acceder:
Esto pone la instancia en modo de depuración y abre una sesión de SSH para la instancia en una ventana de la terminal.
También puedes seleccionar opciones diferentes para iniciar una sesión SSH desde la lista desplegable.
Ahora te encuentras en el host de la instancia, en el que se ejecutan varios contenedores. Consulta Información sobre los contenedores comunes para obtener más información al respecto.
En la ventana de la terminal, se muestran los contenedores que se ejecutan en la instancia:
sudo docker ps
Mediante el resultado del comando
sudo docker ps
, se enumera cada contenedor por fila. Ubica la fila que contiene el ID del proyecto: este es el contenedor que ejecuta tu código. Presta atención al NOMBRE de este contenedor.Si lo deseas, invoca el siguiente comando para mostrar la información de registro de tu aplicación:
sudo docker logs CONTAINER-NAME
Inicia una shell en el contenedor que ejecuta tu código:
sudo docker exec -it CONTAINER-NAME /bin/bash
Cuando termines la depuración, ingresa
exit
para salir del contenedor y, luego,exit
otra vez a fin de salir de la sesión de SSH.Inhabilita la depuración de tu instancia para permitir que se reanude su funcionamiento normal.
gcloud
Para conectarte a una instancia con gcloud, realiza lo siguiente:
Con la instancia habilitada para la depuración, invoca el comando:
gcloud beta app instances --project PROJECT-ID ssh INSTANCE-NAME --service SERVICE --version VERSION
Ahora te encuentras en el host de la instancia, que tiene varios contenedores en ejecución. Consulta Información sobre los contenedores comunes para obtener más información al respecto.
En la ventana de la terminal, se muestran los contenedores que se ejecutan en la instancia:
sudo docker ps
Mediante el resultado del comando
sudo docker ps
, se enumera cada contenedor por fila. Ubica la fila que contiene el ID del proyecto: este es el contenedor que ejecuta tu código. Presta atención al NOMBRE de este contenedor.Si lo deseas, invoca el siguiente comando para mostrar la información de registro de tu aplicación:
sudo docker logs CONTAINER-NAME
Inicia una shell en el contenedor que ejecuta tu código:
docker exec -it CONTAINER-NAME /bin/bash
Cuando termines la depuración, ingresa
exit
para salir del contenedor y, luego,exit
otra vez a fin de salir de la sesión de SSH.Inhabilita la depuración de tu instancia para permitir que se reanude su funcionamiento normal.
Información sobre los contenedores comunes
Además del contenedor que ejecuta el código de tu aplicación, tu instancia también puede tener los siguientes contenedores:
Contenedor y código fuente | Descripción |
---|---|
cloud-sql | Asegura las conexiones seguras a tu instancia de Cloud SQL. |
fluentd_logger | Agente de Logging. |
nginx_proxy | Envía las solicitudes a la aplicación a través de un proxy. |
opentelemetry-collector | Recibe, procesa y exporta datos de telemetría. |
stackdriver-monitoring-agent | Recopila, almacena y supervisa la información del sistema. |
Ten en cuenta que estos contenedores de sidecars están sujetos a cambios sin previo aviso.