Depurar una instancia

Puedes habilitar el modo de depuración para una VM. En el modo de depuración, los miembros del proyecto con funciones Propietario, Editor y Administrador de App Engine tienen acceso con permisos de administrador a la VM. Cuando el modo de depuración está activado, el lanzamiento automático de las actualizaciones del sistema operativo y de los parches de seguridad está inhabilitado. Sin embargo, la VM continúa siendo parte del grupo del balanceador de cargas y sigue recibiendo solicitudes externas.

Siempre que habilitas o inhabilitas la depuración, aparece un evento de "Habilitar/Inhabilitar la depuración de instancia de VM" en Google Cloud Platform Console y el evento se registrará en el archivo /var/log/syslog.log de la VM.

Habilitar o inhabilitar el modo de depuración

Puedes usar gcloud para habilitar y también inhabilitar el modo de depuración de una instancia.

Para inhabilitar y habilitar el modo de depuración en gcloud:

  1. Usa el comando gcloud app instances enable-debug con el fin de depurar las VM para una instancia y versión en particular, de la siguiente manera:
    gcloud app --project [PROJECT-ID] instances enable-debug
    Reemplaza PROJECT-ID con tu propio ID del proyecto y sigue las indicaciones para especificar la versión de la instancia que se depurará.
  2. Cuando termine la depuración, inhabilita el modo de depuración de la siguiente manera:
    gcloud app --project [PROJECT-ID] instances disable-debug
    Sigue las indicaciones para especificar la versión de la instancia.

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.

Conectarse a la instancia

Console

Para conectarte a una instancia en Console:

  1. Visita la página de instancias de GCP Console correspondiente a tu proyecto:

    Ir a la página de instancias

  2. Haz clic en SSH en el extremo derecho de la fila que contiene la instancia a la cual quieres 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 de SSH desde la lista desplegable.

  3. En este punto te encuentras en el host de instancia, que tiene varios contenedores ejecutándose en él. Consulta Comprender los contenedores comunes a continuación para obtener más información al respecto.
  4. En la ventana de la terminal, enumera los contenedores que se ejecutan en la instancia:
    sudo docker ps
  5. La salida del comando sudo docker ps enumera los contenedores por fila. Localiza la fila que contiene tu ID del proyecto: es el contenedor que ejecuta tu código. Anota el NOMBRE de este contenedor.
  6. Otra opción es enumerar la información de registro de la aplicación invocando lo siguiente:
    sudo docker logs [CONTAINER-NAME]
  7. Inicia un shell en el contenedor que ejecuta tu código:
    sudo docker exec -it [CONTAINER-NAME] /bin/bash
  8. Cuando finalice la depuración, ingresa exit si deseas salir del contenedor, luego, ingresa exit nuevamente para salir de la sesión de SSH.
  9. Inhabilita la depuración de tu instancia para permitir que se reanude el funcionamiento normal.

gcloud

Para conectarte a una instancia con gcloud, realiza lo siguiente:

  1. 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]
  2. En este punto te encuentras en el host de la instancia, que tiene varios contenedores en ejecución. Consulta Comprender los contenedores comunes a continuación para obtener más información al respecto.
  3. En la ventana de la terminal, enumera los contenedores que se ejecutan en la instancia:
    sudo docker ps
  4. La salida del comando sudo docker ps enumera los contenedores por fila. Localiza la fila que contiene tu ID del proyecto: es el contenedor que ejecuta tu código. Anota el NOMBRE de este contenedor.
  5. Otra opción es enumerar la información de registro de la aplicación invocando lo siguiente:
    sudo docker logs [CONTAINER-NAME]
  6. Inicia un shell en el contenedor que ejecuta tu código:
    docker exec -it [CONTAINER-NAME] /bin/bash
  7. Cuando finalice la depuración, ingresa exit si deseas salir del contenedor, luego, ingresa exit nuevamente para salir de la sesión de SSH.
  8. Inhabilita la depuración de tu instancia para permitir que se reanude el funcionamiento normal.

Comprender 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 Organización de código abierto Descripción
fluentd_logger fluentd.org/ Agente de Logging
memcache_proxy Código abierto de proxy de Memcache Proporciona la funcionalidad de Memcache para la aplicación.
nginx_proxy nginx.org Solicitudes de proxies para la aplicación.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno flexible de App Engine para documentos de Java