Depura una instancia

Puedes habilitar el modo de depuración para una VM. En el modo de depuración, los miembros del proyecto con funciones de propietario, editor y administrador de App Engine tienen acceso raíz a la VM. Mientras el modo de depuración esté activado, se inhabilitará el lanzamiento automático de actualizaciones del sistema operativo y parches de seguridad. 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 "habilitar/inhabilitar depuración de la instancia de VM" en Google Cloud Console, y el evento se registrará en el archivo /var/log/syslog.log de la VM.

Habilita o inhabilita el modo de depuración

Puedes usar gcloud para habilitar o inhabilitar el modo de depuración de una instancia.

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

  1. Usa el comando gcloud app instances enable-debug para depurar las VM de una instancia y versión en particular de la siguiente manera:
    gcloud app --project [PROJECT-ID] instances enable-debug
    Reemplaza PROJECT-ID por tu propio ID del proyecto y sigue las indicaciones para especificar la versión de la instancia que deseas 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.

Conéctate a la instancia

Console

Para conectarte a una instancia en la consola:

  1. Visita la página de instancias de Cloud Console de tu proyecto:

    Ir a la página de instancias

  2. Haga clic en SSH en el extremo derecho de la fila que contiene la instancia a la que desea 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.

  3. Ahora te encuentras en el host de la instancia, en el que se ejecutan varios contenedores. Consulta a continuación la Información sobre los contenedores comunes para obtener más información al respecto.
  4. En la ventana de terminal, muestra los contenedores que se ejecutan en la instancia:
    sudo docker ps
  5. El resultado del comando sudo docker ps enumera cada contenedor por fila. Ubica la fila que contiene tu ID del proyecto: este es el contenedor que ejecuta tu código. Presta atención al NOMBRE de este contenedor.
  6. Si lo deseas, invoca el siguiente comando para mostrar la información de registro de tu aplicación:
    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 termines de depurar, ingresa exit para salir del contenedor y, luego, exit nuevamente para salir de la sesión SSH.
  9. 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:

  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. Ahora te encuentras en el host de la instancia, que tiene varios contenedores en ejecución. Consulta a continuación la Información sobre los contenedores comunes para obtener más información al respecto.
  3. En la ventana de terminal, muestra los contenedores que se ejecutan en la instancia:
    sudo docker ps
  4. El resultado del comando sudo docker ps enumera cada contenedor por fila. Ubica la fila que contiene tu ID del proyecto: este es el contenedor que ejecuta tu código. Presta atención al NOMBRE de este contenedor.
  5. Si lo deseas, invoca el siguiente comando para mostrar la información de registro de tu aplicación:
    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 termines de depurar, ingresa exit para salir del contenedor y, luego, exit nuevamente para salir de la sesión SSH.
  8. 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 Organización de código abierto Descripción
fluentd_logger fluentd.org/ Agente de Logging.
memcache_proxy Proxy de Memcache de código abierto Proporciona la funcionalidad de Memcache a la aplicación.
nginx_proxy nginx.org Funciona como proxy de las solicitudes a la aplicación.