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
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
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.
- Ouvrez une fenêtre Cloud Shell pour le projet. Le message Connexion… s'affiche pendant le démarrage de la session.
Premiers pas
Dans cette section, vous téléchargez et déployez une application sur App Engine :
Téléchargez et configurez l'application à partir du projet GitHub python-docs-samples :
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'...
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
Installez les dépendances :
pip install -r requirements.txt
Vérifiez que l'installation et la configuration de l'application ont réussi :
Exécutez l'application :
python main.py
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!
.Pour arrêter votre application en cours d'exécution, saisissez
Ctrl-C
dans Cloud Shell.
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.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 :
Modifiez le fichier
main.py
en remplaçantreturn '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.Téléchargez l'application modifiée sur App Engine :
gcloud app deploy
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 :
Accédez à 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 :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 :
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 :
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 :
Accédez à Error Reporting :
Pour activer les notifications par e-mail, cliquez sur Plus more_vert, puis sélectionnez Activer l'envoi des nouvelles notifications d'erreur pour le projet dans la liste déroulante.
Dans le fichier
main.py
, remplacezreturn 'Hello World!` + 1000
à
return 'Hello World!'.punctuate()
Lorsqu'elle est exécutée, cette modification entraîne une exception
AttributeError
Python, car l'attributpunctuate()
n'existe pas.Transférez le fichier modifié sur App Engine :
gcloud app deploy
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 :
- Dans Cloud Console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Étape suivante
Consultez nos ressources sur DevOps et découvrez notre programme de recherche.