Guide de démarrage rapide avec App Engine

Ce guide de démarrage rapide présente Error Reporting et vous explique comment :

  • déployer une application Python App Engine à l'aide de Cloud Shell ;
  • afficher une erreur dans votre application à l'aide de Error Reporting ;
  • configurer Error Reporting pour envoyer des notifications.

Essayez le tutoriel interactif de trois minutes dans Google Cloud Console.
(Cliquez sur Démarrer dans la colonne Introduction d'Error Reporting.)

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder à la page de sélection du projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Ouvrez une fenêtre Cloud Shell pour le projet. Le message Connexion… s'affiche pendant le démarrage de la session.

    Ouvrez Cloud Shell.

Premiers pas

Dans cette section, vous téléchargez et déployez une application sur App Engine :

  1. Téléchargez et configurez l'application à partir du projet GitHub python-docs-samples :

    1. Clonez le projet dans l'environnement Cloud Shell :

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      

      Git renvoie un message semblable à celui indiqué ci-dessous :

      git clone https://github.com/GoogleCloudPlatform/python-docs-samples
      Cloning into 'python-docs-samples'...
      
    2. Créez un environnement Python isolé et activez-le :

      cd python-docs-samples/appengine/standard_python3/hello_world
      virtualenv env -p python3
      source env/bin/activate
      
    3. Installez les dépendances :

      pip install -r requirements.txt
      
  2. Vérifiez que l'installation et la configuration de l'application ont réussi :

    1. Exécutez l'application :

      python main.py
      
    2. Pour afficher l'application sur une page Web locale, cliquez sur le lien affiché dans Cloud Shell. La page Web affiche le message Hello World!.

    3. Pour arrêter votre application en cours d'exécution, saisissez Ctrl-C dans Cloud Shell.

  3. Transférez l'application sur App Engine.

    gcloud app deploy
    

    Si vous êtes invité à indiquer une région de déploiement, sélectionnez-en une près de chez vous. Lorsque vous êtes invité à poursuivre l'opération, entrez Y. L'importation se termine après quelques instants.

  4. Affichez l'application dans un navigateur en exécutant la commande suivante dans Cloud Shell :

    gcloud app browse
    

    Si le SDK Cloud ne trouve pas votre navigateur, la commande précédente affiche un message d'erreur et un lien. Cliquez sur le lien affiché. Le message Hello, World! s'affiche dans le navigateur.

Introduire une erreur

Dans les étapes suivantes, vous créez une erreur que Error Reporting détecte et affiche :

  1. Modifiez le fichier main.py en remplaçant

    return 'Hello World!
    

    à

    return 'Hello World!' + 1000
    

    Lorsqu'elle est exécutée, cette modification entraîne une exception TypeError Python, car il est illégal de concaténer une chaîne et un entier.

  2. Téléchargez l'application modifiée sur App Engine :

    gcloud app deploy
    
  3. Retournez à l'onglet du navigateur contenant l'application en cours d'exécution et actualisez la page. En raison de la modification, la page affiche un message d'erreur au lieu du message Hello, World! :

    Internal Server Error
    The server encountered an internal error and was unable to complete your
    request. Either the server is overloaded or there is an error in the
    application.
    

    Si vous ne voyez pas ce message, attendez une minute et actualisez à nouveau la page. L'activation de la nouvelle version peut prendre quelques instants.

Afficher l'erreur dans Error Reporting

Le message d'erreur affiché dans la page Web n'est pas très utile, car il ne fournit pas assez de détails pour résoudre le problème. Toutefois, si vous utilisez Error Reporting, vous pouvez obtenir des informations détaillées sur l'erreur et sur le nombre d'occurrences :

  1. Accédez à Error Reporting :

    Accéder à Error Reporting

    Le tableau de bord Error Reporting affiche un résumé de chaque erreur trouvée et le nombre d'occurrences de chaque erreur. Par défaut, Error Reporting actualise automatiquement la liste des erreurs toutes les 5 secondes. Toutefois, pour forcer une actualisation immédiate, cliquez sur Actualisation automatique.

    Dans ce guide de démarrage rapide, le tableau de bord affiche une erreur avec la description "TypeError: can only concatenate str (not "int") to str". Vous devrez peut-être patienter une minute et actualiser la page pour afficher l'erreur :

    Interface utilisateur affichant l'erreur de test.

  2. Générez à nouveau la même erreur en actualisant l'application dans votre navigateur.

    La trace de la pile de la nouvelle erreur étant semblable à la première erreur, Error Reporting les regroupe en mettant à jour le nombre d'occurrences ainsi que le graphique temporel :

    Interface utilisateur affichant les occurrences par lot de l'erreur de test.

  3. Pour afficher la page de détails de l'erreur, qui contient toutes les informations disponibles sur une erreur, y compris des liens vers le code source, cliquez sur le nom de l'erreur :

    Interface utilisateur affichant la page des détails de l'erreur de test.

Configurer les notifications

Vous pouvez configurer Error Reporting pour vous avertir de l'arrivée d'un nouveau type d'erreur. Les notifications ne sont pas envoyées lorsqu'il y a de nouvelles occurrences d'erreurs existantes :

  1. Accédez à Error Reporting :

    Accéder à Error Reporting

  2. Pour activer les notifications par e-mail, cliquez sur Plus , puis sélectionnez Activer l'envoi des nouvelles notifications d'erreur pour le projet dans la liste déroulante.

  3. Dans le fichier main.py, remplacez

    return 'Hello World!` + 1000
    

    à

    return 'Hello World!'.punctuate()
    

    Lorsqu'elle est exécutée, cette modification entraîne une exception AttributeError Python, car l'attribut punctuate() n'existe pas.

  4. Transférez le fichier modifié sur App Engine :

    gcloud app deploy
    
  5. Générez la nouvelle erreur en actualisant l'application dans votre navigateur.

    • Le navigateur affiche le message suivant : Internal Server Error.

    • Le tableau de bord Error Reporting affiche une erreur avec la description "AttributeError: 'str' object has no attribute 'punctuate'.

    • Votre adresse e-mail comprend une nouvelle notification contenant des détails sur l'erreur, tels que :

      • ID du projet
      • une description de l'erreur (dans ce cas, elle inclut "AttributeError: 'str' object has no attribute 'punctuate') ;
      • Service
      • la version de l'application

Nettoyer

Pour éviter que les ressources utilisées dans ce guide de démarrage rapide soient facturées sur votre compte Google Cloud, procédez comme suit :

  1. Dans Cloud Console, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer .
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étape suivante