Esecuzione del debug di un'istanza

Puoi abilitare la modalità di debug per una VM. In modalità di debug, le entità che hanno i ruoli di Proprietario, Editor e App Engine nel progetto hanno accesso root alla VM. Mentre la modalità di debug è attiva, l'implementazione automatica degli aggiornamenti del sistema operativo e delle patch di sicurezza è disabilitata. Tuttavia, la VM fa ancora parte del pool di bilanciatore del carico e continua a ricevere richieste esterne.

Ogni volta che attivi o disattivi il debug, un evento di attivazione/disattivazione del debug delle istanze "VM" viene visualizzato in Google Cloud Console e l'evento viene registrato nel file /var/log/syslog.log della VM.

Attivazione e disattivazione della modalità di debug

Puoi utilizzare gcloud per abilitare e disabilitare la modalità di debug per un'istanza.

Per attivare e disattivare la modalità di debug in gcloud:

  1. Utilizza il comando gcloud app instances enable-debug per eseguire il debug delle VM per una particolare istanza e versione, come segue:
    gcloud app --project [PROJECT-ID] instances enable-debug
    Sostituisci PROJECT-ID con il tuo ID progetto e segui le istruzioni per specificare la versione dell'istanza di cui eseguire il debug.
  2. Al termine del debug, disattiva la modalità di debug come segue:
    gcloud app --project [PROJECT-ID] instances disable-debug
    Segui le istruzioni per specificare la versione dell'istanza

Se disabiliti la modalità di debug, la VM viene arrestata e viene avviata una nuova istanza dell'app, in esecuzione su una nuova VM vuota.

Connessione all'istanza

Console

Per connetterti a un'istanza nella console:

  1. Visita la pagina delle istanze Cloud Console relativa al tuo progetto:

    Vai alla pagina Istanze

  2. Fai clic su SSH all'estrema destra della riga che contiene l'istanza a cui vuoi accedere:

    In questo modo, l'istanza viene messa in modalità di debug e apre una sessione SSH per l'istanza in una finestra del terminale.

    Puoi anche selezionare diverse opzioni per avviare una sessione SSH dall'elenco a discesa.

  3. A questo punto ti trovi nell'host dell'istanza, che contiene diversi container in esecuzione. Per ulteriori informazioni su questi argomenti, consulta la sezione Informazioni sui container comuni.
  4. Nella finestra del terminale, elenca i container in esecuzione nell'istanza:
    sudo docker ps
  5. L'output del comando sudo docker ps elenca ogni container per riga; individua la riga che contiene l'ID progetto, ovvero il container che esegue il tuo codice. Prendi nota del NOME di questo contenitore.
  6. Facoltativamente, elenca le informazioni di logging per l'applicazione richiamando:
    sudo docker logs [CONTAINER-NAME]
  7. Avvia una shell nel container che esegue il tuo codice:
    sudo docker exec -it [CONTAINER-NAME] /bin/bash
  8. Al termine del debug, inserisci exit per uscire dal container, quindi nuovamente exit per uscire dalla sessione SSH.
  9. Disabilita il debug per l'istanza per consentire il ripristino del normale funzionamento.

gcloud

Per connetterti a un'istanza utilizzando gcloud:

  1. Con l'istanza abilitata per il debug, richiama il comando:
    gcloud beta app instances --project [PROJECT-ID] ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
  2. A questo punto ti trovi nell'host dell'istanza, che ha diversi container in esecuzione. Per ulteriori informazioni su questi argomenti, consulta la sezione Informazioni sui container comuni.
  3. Nella finestra del terminale, elenca i container in esecuzione nell'istanza:
    sudo docker ps
  4. L'output del comando sudo docker ps elenca ogni container per riga; individua la riga che contiene l'ID progetto, ovvero il container che esegue il tuo codice. Prendi nota del NOME di questo contenitore.
  5. Facoltativamente, elenca le informazioni di logging per l'applicazione richiamando:
    sudo docker logs [CONTAINER-NAME]
  6. Avvia una shell nel container che esegue il tuo codice:
    docker exec -it [CONTAINER-NAME] /bin/bash
  7. Al termine del debug, inserisci exit per uscire dal container, quindi nuovamente exit per uscire dalla sessione SSH.
  8. Disabilita il debug per l'istanza per consentire il ripristino del normale funzionamento.

Informazioni sui container comuni

Oltre al container che esegue il tuo codice dell'applicazione, la tua istanza potrebbe avere anche i seguenti container

Container e codice sorgente Organizzazione open source Descrizione
Lentflu_logger fluentd.org/ Agente Logging.
proxy_memcache proxy open source proxy Memcachem Offre all'applicazione la funzionalità memcache.
nginx_proxy nginx.org Invia le richieste all'applicazione tramite proxy.