Questo tutorial mostra come segnalare e monitorare le eccezioni non rilevate nel tutorial Introduzione a Python utilizzando la Google Cloud console.
Error Reporting fornisce una dashboard centralizzata che mostra i conteggi di ogni errore univoco, le analisi dello stack e una cronologia delle occorrenze. Puoi anche configurare un avviso per quando si verificano errori.
Questa pagina fa parte di un tutorial in più passaggi. Per iniziare dall'inizio e leggere le istruzioni di configurazione, consulta la pagina Introduzione a Python.
Configurazione delle impostazioni
Questa sezione utilizza il codice nella directory 5-logging. Modifica i file ed esegui i comandi in questa directory.
-
Apri il file
config.pyper la modifica e sostituisci i seguenti valori: -
Imposta il valore di
[PROJECT_ID]sull'ID progetto, che è visibile nella Google Cloud console. -
Imposta il valore di
[DATA_BACKEND]sullo stesso valore utilizzato durante il tutorial Utilizzo dei dati strutturati. -
Se utilizzi Cloud SQL o MongoDB, imposta i valori nella sezione
Cloud SQLoMongosugli stessi valori utilizzati durante il passaggio Utilizzo dei dati strutturati. -
Imposta il valore di
[CLOUD_STORAGE_BUCKET]sul nome del tuo bucket Cloud Storage. -
Nella sezione
OAuth2 configuration, imposta i valori di[GOOGLE_OAUTH2_CLIENT_ID]e[GOOGLE_OAUTH2_CLIENT_SECRET]sull'ID client e sul secret dell'applicazione che hai creato in precedenza. -
Salva e chiudi il file
config.py.
Se utilizzi Cloud SQL:
-
Apri il file
app.yamlper la modifica. -
Imposta il valore di
cloudsql-instancesullo stesso valore utilizzato per[CLOUDSQL_CONNECTION_NAME]nelconfig.pyfile. Utilizza il formatoproject:region:cloudsql-instance. Rimuovi il commento dall'intera riga. -
Salva e chiudi il file
app.yaml.
Installazione delle dipendenze
Per creare un ambiente virtuale e installare le dipendenze, utilizza i seguenti comandi:
Linux/macOS
virtualenv -p python3 env
source env/bin/activate
pip install -r requirements.txt
Windows
virtualenv -p python3 env
env\scripts\activate
pip install -r requirements.txt
Esecuzione dell'applicazione nel computer locale
Avvia un server web locale:
python main.pyNel browser, inserisci il seguente indirizzo:
http://localhost:8080
Premi Control+C per uscire dal worker e poi dal server web locale.
Distribuzione dell'applicazione nell'ambiente flessibile di App Engine
Distribuisci l'app di esempio:
gcloud app deployNel browser, inserisci il seguente URL:
https://PROJECT_ID.REGION_ID.r.appspot.comSostituisci quanto segue:
PROJECT_ID: l'ID progetto Google CloudREGION_ID: un codice assegnato da App Engine alla tua app
Se aggiorni l'app, esegui il deployment della versione aggiornata inserendo lo stesso comando utilizzato per eseguire il deployment dell'app. Il deployment crea una nuova versione dell'app e la promuove alla versione predefinita. Le versioni precedenti dell'app rimangono, così come le istanze di macchine virtuali (VM) associate. Tutte queste versioni dell'app e le istanze VM sono risorse fatturabili. Per ridurre i costi, elimina le versioni non predefinite dell'app.
Per eliminare una versione dell'applicazione:
- Nella Google Cloud console, vai alla pagina Versioni di App Engine.
- Seleziona la casella di controllo per la versione dell'app non predefinita che vuoi eliminare.
- Per eliminare la versione dell'app, fai clic su Elimina.
Per ulteriori informazioni sulla pulizia delle risorse fatturabili, consulta la sezione Pulizia nel passaggio finale di questo tutorial.
Simulare un errore
Per vedere Error Reporting in azione, inserisci intenzionalmente un errore nel codice, quindi cerca l'eccezione nella Google Cloud pagina Error Reporting della console.
In
bookshelf/crud.py, aggiungi un'operazione che accede a una variabile non definita e genera unReferenceErrornella visualizzazione dell'indice.@crud.route("/") def list(): x[3]
Esegui il deployment dell'app.
gcloud app deploy
Accedi alla pagina dell'indice.
gcloud app browse
Puoi visualizzare il messaggio
An internal error occurred.-
Nella Google Cloud console, vai alla pagina Error Reporting:
Puoi trovare questa pagina anche utilizzando la barra di ricerca.
Puoi vedere l'errore elencato.
Fai clic sull'errore per visualizzare informazioni sull'errore, ad esempio l'ultima volta che è stato rilevato, il numero di volte in cui si è verificato, un istogramma dei tempi di occorrenza e l'analisi dello stack.
Nozioni di base sul codice
Per segnalare le eccezioni non rilevate, il codice utilizza prima il decoratore errorhandler
errorhandler di Flask, quindi segnala l'eccezione a Error Reporting utilizzando
le
librerie client di Cloud per Python.
Il client aggiunge automaticamente le informazioni di traceback e utilizza una funzione helper per estrarre i dettagli della richiesta pertinenti dalla richiesta Flask, che popola Error Reporting con le analisi dello stack e i contesti HTTP pertinenti per qualsiasi eccezione InternalServerError HTTP 500 non rilevata nell'app.
Libera spazio
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.
Per eliminare il progetto:
- Nella Google Cloud console, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID progetto, quindi fai clic su Chiudi per eliminare il progetto.