Tutorial ini menunjukkan cara melaporkan dan melacak pengecualian yang tidak tertangkap dalam tutorial Memulai Python menggunakan Google Cloud konsol.
Error Reporting menyediakan dasbor terpusat yang menampilkan jumlah setiap error unik, pelacakan tumpukan, dan histori kejadian. Anda juga dapat menyiapkan pemberitahuan untuk saat terjadi error.
Halaman ini adalah bagian dari tutorial multipage. Untuk memulai dari awal dan membaca petunjuk penyiapan, buka Aplikasi Python Bookshelf.
Mengonfigurasi setelan
Bagian ini menggunakan kode di direktori 5-logging. Edit file dan jalankan perintah di direktori ini.
-
Buka file
config.pyuntuk diedit dan ganti nilai berikut: -
Tetapkan nilai
[PROJECT_ID]ke project ID Anda, yang terlihat di Google Cloud konsol. -
Tetapkan nilai
[DATA_BACKEND]ke nilai yang sama dengan yang Anda gunakan selama tutorial Menggunakan data terstruktur. -
Jika Anda menggunakan Cloud SQL atau MongoDB, tetapkan nilai di bagian
Cloud SQLatauMongoke nilai yang sama dengan yang Anda gunakan selama langkah Menggunakan data terstruktur. -
Tetapkan nilai
[CLOUD_STORAGE_BUCKET]ke nama bucket Cloud Storage Anda. -
Di bagian
OAuth2 configuration, tetapkan nilai[GOOGLE_OAUTH2_CLIENT_ID]dan[GOOGLE_OAUTH2_CLIENT_SECRET]ke ID klien dan secret aplikasi yang Anda buat sebelumnya. -
Simpan dan tutup file
config.py.
Jika Anda menggunakan Cloud SQL:
-
Buka file
app.yamluntuk diedit. -
Tetapkan nilai
cloudsql-instanceke nilai yang sama dengan yang digunakan untuk[CLOUDSQL_CONNECTION_NAME]dalam fileconfig.py. Gunakan formatproject:region:cloudsql-instance. Hapus komentar pada seluruh baris ini. -
Simpan dan tutup file
app.yaml.
Menginstal dependensi
Untuk membuat lingkungan virtual dan menginstal dependensi, gunakan perintah berikut:
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
Menjalankan aplikasi di komputer lokal
Mulai server web lokal:
python main.pyDi browser Anda, masukkan alamat berikut:
http://localhost:8080
Tekan Control+C untuk keluar dari pekerja, lalu server web lokal.
Men-deploy aplikasi ke lingkungan fleksibel App Engine
Deploy aplikasi contoh:
gcloud app deployDi browser Anda, masukkan URL berikut:
https://PROJECT_ID.REGION_ID.r.appspot.comGanti kode berikut:
PROJECT_ID: Project ID Anda Google CloudREGION_ID: Kode yang ditetapkan App Engine ke aplikasi Anda
Jika Anda memperbarui aplikasi, Anda akan men-deploy versi yang diperbarui dengan memasukkan perintah yang sama dengan yang Anda gunakan untuk men-deploy aplikasi. Deployment akan membuat versi baru aplikasi Anda dan mempromosikannya ke versi default. Versi aplikasi Anda sebelumnya tetap ada, begitu juga instance mesin virtual (VM) terkait. Semua versi aplikasi dan instance VM ini adalah resource yang dapat ditagih. Untuk mengurangi biaya, hapus versi aplikasi Anda yang non-default.
Untuk menghapus versi aplikasi:
- Di Google Cloud konsol, buka halaman Versions untuk App Engine.
- Pilih kotak centang untuk versi aplikasi non-default yang ingin Anda hapus.
- Untuk menghapus versi aplikasi, klik Hapus.
Untuk mengetahui informasi selengkapnya tentang membersihkan resource yang dapat ditagih, lihat bagian Membersihkan di langkah terakhir tutorial ini.
Menyimulasikan error
Untuk melihat Error Reporting beraksi, sengaja buat kesalahan dalam kode Anda, lalu cari pengecualian di Google Cloud halaman Error Reporting konsol.
Di
bookshelf/crud.py, tambahkan operasi yang mengakses variabel yang tidak ditentukan dan menghasilkanReferenceErrordalam tampilan indeks.@crud.route("/") def list(): x[3]
Deploy aplikasi.
gcloud app deploy
Akses halaman indeks.
gcloud app browse
Anda dapat melihat pesan
An internal error occurred.-
Di Google Cloud konsol, buka halaman Error Reporting:
Anda juga dapat menemukan halaman ini menggunakan kotak penelusuran.
Anda dapat melihat error yang tercantum.
Klik error untuk melihat informasi tentang error tersebut, seperti kapan error terakhir terlihat,jumlah error terjadi, histogram waktu kejadian, dan pelacakan tumpukan.
Memahami kode
Untuk melaporkan pengecualian yang tidak tertangkap, kode pertama-tama menggunakan errorhandler
dekorator Flask, lalu melaporkan pengecualian ke Error Reporting menggunakan
Library Klien Cloud untuk Python.
Klien secara otomatis menambahkan info traceback dan menggunakan fungsi helper untuk mengekstrak detail permintaan yang relevan dari permintaan Flask, yang mengisi Error Reporting dengan pelacakan tumpukan dan konteks HTTP yang relevan untuk pengecualian InternalServerError HTTP 500 yang tidak tertangkap di aplikasi Anda.
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di Google Cloud konsol, buka halaman Manage resources.
- Pada daftar project, pilih project yang Anda ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.