Tutorial ini menunjukkan cara melaporkan dan melacak pengecualian yang tidak tertangkap dalam tutorial Memulai Python dengan menggunakan Google Cloud console.
Error Reporting menyediakan dasbor terpusat yang menampilkan jumlah setiap error unik, stack trace, dan histori kejadian. Anda juga dapat menyiapkan pemberitahuan saat terjadi error.
Halaman ini adalah bagian dari tutorial multi-halaman. Untuk memulai dari awal dan membaca petunjuk penyiapan, buka Aplikasi Bookshelf Python.
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 konsol Google Cloud . -
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 dan rahasia klien aplikasi yang Anda buat sebelumnya. -
Simpan dan tutup file
config.pytersebut.
Jika Anda menggunakan Cloud SQL:
-
Buka file
app.yamluntuk mengedit. -
Tetapkan nilai
cloudsql-instanceke nilai yang sama dengan yang digunakan untuk[CLOUDSQL_CONNECTION_NAME]dalam fileconfig.py. Gunakan formatproject:region:cloudsql-instance. Hapus tanda komentar pada seluruh baris ini. -
Simpan dan tutup file
app.yamltersebut.
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 Google Cloud AndaREGION_ID: Kode yang ditetapkan App Engine ke aplikasi Anda
Jika Anda mengupdate aplikasi, Anda men-deploy versi yang diupdate dengan memasukkan perintah yang sama yang Anda gunakan untuk men-deploy aplikasi. Deployment membuat versi baru aplikasi Anda dan mempromosikannya ke versi default. Versi aplikasi Anda sebelumnya tetap ada, begitu juga dengan instance mesin virtual (VM) terkait. Semua versi aplikasi dan instance VM ini adalah resource yang dapat ditagih. Untuk mengurangi biaya, hapus versi non-default aplikasi Anda.
Untuk menghapus versi aplikasi:
- In the Google Cloud console, go to the Versions page for App Engine.
- Select the checkbox for the non-default app version that you want to delete.
- Untuk menghapus versi aplikasi, klik Hapus.
Untuk mengetahui informasi selengkapnya tentang cara membersihkan resource yang dapat ditagih, lihat bagian Membersihkan pada langkah terakhir tutorial ini.
Menyimulasikan error
Untuk melihat cara kerja Pelaporan Kesalahan, sengaja buat kesalahan dalam kode Anda, lalu cari pengecualian di halaman Pelaporan Kesalahan konsol Google Cloud .
Di
bookshelf/crud.py, tambahkan operasi yang mengakses variabel yang tidak ditentukan dan menghasilkanReferenceErrordi 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 konsol Google Cloud , buka halaman Error Reporting:
Anda juga dapat menemukan halaman ini dengan menggunakan kotak penelusuran.
Anda dapat melihat error yang tercantum.
Klik error untuk melihat informasi tentang error, seperti kapan error terakhir terlihat,frekuensi terjadinya error, histogram waktu terjadinya, dan pelacakan tumpukan.
Memahami kode
Untuk melaporkan pengecualian yang tidak tertangkap, kode pertama-tama menggunakan dekorator errorhandler
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
Pelaporan Error dengan stack trace dan konteks HTTP yang relevan untuk setiap
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:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.