Déboguer une instance

Vous pouvez activer le mode de débogage pour une VM. Dans ce mode, les membres d'un projet dotés des rôles "Propriétaire", "Éditeur" et "Administrateur App Engine" disposent d'un accès root à la VM. Lorsque le mode de débogage est activé, le déploiement automatique des mises à jour du système d'exploitation et des correctifs de sécurité est désactivé. En revanche, la VM fait toujours partie du pool d'équilibreur de charge et continue de recevoir des requêtes externes.

Chaque fois que vous activez ou désactivez le débogage, un événement "Activer/Désactiver le débogage des instances de VM" s'affiche dans la console Google Cloud Platform, et est enregistré dans le fichier /var/log/syslog.log de la VM.

Activer et désactiver le mode de débogage

Vous pouvez utiliser la commande gcloud afin d'activer et de désactiver le mode de débogage pour une instance.

Pour activer et désactiver le mode de débogage dans l'outil gcloud, procédez comme suit :

  1. Exécutez la commande enable-debug app instances gcloud pour déboguer les VM d'une instance et d'une version particulières, comme ci-dessous :
    gcloud app --project [PROJECT-ID] instances enable-debug
    Remplacez "PROJECT-ID" par l'ID de votre projet, puis suivez les instructions pour spécifier la version de l'instance à déboguer.
  2. Une fois le débogage terminé, désactivez le mode de débogage comme suit :
    gcloud app --project [PROJECT-ID] instances disable-debug
    Suivez ensuite les instructions pour spécifier la version de l'instance.

Lorsque vous désactivez le mode de débogage, la VM s'arrête, puis une nouvelle instance de votre application démarre et s'exécute sur une nouvelle VM propre.

Se connecter à l'instance

Console

Pour se connecter à une instance dans la console, procédez comme suit :

  1. Consultez la page "Instances" de la console GCP qui correspond à votre projet :

    Accéder à la page "Instances"

  2. Cliquez sur SSH tout à droite de la ligne contenant l'instance à laquelle vous souhaitez accéder.

    L'instance passe alors en mode de débogage. Une session SSH s'ouvre pour l'instance dans une fenêtre de terminal.

    Pour démarrer une session SSH, vous pouvez également sélectionner différentes options dans la liste déroulante.

  3. À ce stade, vous utilisez l'hôte de l'instance, qui exécute plusieurs conteneurs. Pour en savoir plus sur les conteneurs, consultez la section ci-dessous intitulée Comprendre les principaux conteneurs.
  4. Dans la fenêtre de terminal, répertoriez les conteneurs exécutés dans l'instance :
    sudo docker ps
  5. Chaque conteneur est répertorié sur une ligne du résultat de la commande sudo docker ps. Repérez la ligne contenant l'ID de votre projet : elle correspond au conteneur exécutant votre code. Notez le NOM de ce conteneur.
  6. (Facultatif) Vous pouvez afficher les informations de journalisation de votre application en appelant la commande suivante :
    sudo docker logs [CONTAINER-NAME]
  7. Démarrez une interface système dans le conteneur qui exécute le code :
    sudo docker exec -it [CONTAINER-NAME] /bin/bash
  8. Lorsque vous avez terminé le débogage, saisissez exit pour quitter le conteneur, puis saisissez de nouveau exit pour quitter la session SSH.
  9. Désactivez le débogage de l'instance pour lui permettre de reprendre un fonctionnement normal.

gcloud

Pour vous connecter à une instance à l'aide de la commande gcloud, procédez comme suit :

  1. Une fois l'instance activée pour le débogage, appelez la commande suivante :
    gcloud beta app instances --project [PROJECT-ID] ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
  2. À ce stade, vous utilisez l'hôte de l'instance, qui exécute plusieurs conteneurs. Pour en savoir plus sur les conteneurs, consultez la section ci-dessous intitulée Comprendre les principaux conteneurs.
  3. Dans la fenêtre de terminal, répertoriez les conteneurs exécutés dans l'instance :
    sudo docker ps
  4. Chaque conteneur est répertorié sur une ligne du résultat de la commande sudo docker ps. Repérez la ligne contenant l'ID de votre projet : elle correspond au conteneur exécutant votre code. Notez le NOM de ce conteneur.
  5. (Facultatif) Vous pouvez afficher les informations de journalisation de votre application en appelant la commande suivante :
    sudo docker logs [CONTAINER-NAME]
  6. Démarrez une interface système dans le conteneur qui exécute le code :
    docker exec -it [CONTAINER-NAME] /bin/bash
  7. Lorsque vous avez terminé le débogage, saisissez exit pour quitter le conteneur, puis saisissez de nouveau exit pour quitter la session SSH.
  8. Désactivez le débogage de l'instance pour lui permettre de reprendre un fonctionnement normal.

Comprendre les principaux conteneurs

En plus du conteneur exécutant le code de votre application, votre instance peut comporter également les conteneurs ci-dessous.

Conteneur et code source Org. Open Source Description
fluentd_logger fluentd.org/ Correspond à l'agent Logging.
memcache_proxy memcache proxy Open Source Fournit la fonctionnalité Memcache à l'application.
nginx_proxy nginx.org Sert de proxy pour les requêtes envoyées à l'application.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Environnement flexible App Engine pour les documents Ruby