本教學課程說明如何使用 Google Cloud 控制台,在「Python 入門」教學課程中,報告及追蹤未捕捉到的例外狀況。
Error Reporting 提供集中式資訊主頁,顯示各項錯誤的計數、堆疊追蹤記錄和發生記錄。您也可以設定錯誤發生時的快訊。
完整的教學課程內容涵蓋了數個頁面的篇幅,本頁面屬於其中一個單元。如要從頭開始及閱讀設定的操作說明,請前往 Python Bookshelf 應用程式。
設定
本節使用 5-logging 目錄中的程式碼。編輯檔案並在此目錄中執行指令。
-
開啟
config.py檔案進行編輯,並替換下列值: -
將
[PROJECT_ID]的值設為您的專案 ID,您可以在 Google Cloud 控制台中找到專案 ID。 -
將
[DATA_BACKEND]的值設為您在《使用結構化資料》教學課程中所使用的值。 -
如果您使用的是 Cloud SQL 或 MongoDB,請將
Cloud SQL或Mongo區段的值設為您在「使用結構化資料」步驟期間所使用的值。 -
將
[CLOUD_STORAGE_BUCKET]設為您的 Cloud Storage 值區名稱。 -
在
OAuth2 configuration區段下,將[GOOGLE_OAUTH2_CLIENT_ID]和[GOOGLE_OAUTH2_CLIENT_SECRET]的值設為您之前建立的應用程式用戶端 ID 與密鑰。 -
儲存並關閉
config.py檔案。
如果您使用的是 Cloud SQL:
-
開啟
app.yaml檔案進行編輯。 -
將
cloudsql-instance的值設為config.py檔案中[CLOUDSQL_CONNECTION_NAME]所使用的值。使用project:region:cloudsql-instance格式。 接著將整列取消註解。 -
儲存並關閉
app.yaml檔案。
安裝依附元件
如要建立虛擬環境並安裝依附元件,請使用以下指令:
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
在本機電腦執行應用程式
啟動本機網路伺服器:
python main.py在瀏覽器中,輸入下列網址:
http://localhost:8080
按下 Ctrl+C 離開工作站,接著離開本機網路伺服器。
將應用程式部署至 App Engine 彈性環境
部署範例應用程式:
gcloud app deploy在瀏覽器中輸入下列網址:
https://PROJECT_ID.REGION_ID.r.appspot.com更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 IDREGION_ID:App Engine 指派給應用程式的代碼
如果您更新應用程式,請輸入部署應用程式時使用的相同指令來部署更新版本。部署作業會為您的應用程式建立新版本,並將這個新版本晉升為預設版本。應用程式的較舊版本和相關聯的虛擬機器 (VM) 執行個體都會保留下來。這些應用程式版本和 VM 執行個體均屬於計費資源。為減少費用,請刪除應用程式的非預設版本。
若要刪除應用程式版本:
- 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.
- 如要刪除應用程式版本,請按一下 「刪除」。
如要進一步瞭解如何清除計費資源,請參閱本教學課程最後一個步驟的「清除所用資源」一節。
模擬錯誤
如要查看錯誤報告的執行情況,請刻意在程式碼中導入錯誤,然後在 Google Cloud 控制台的錯誤報告頁面中尋找例外狀況。
在
bookshelf/crud.py中,新增可存取未定義變數的作業,並在索引檢視畫面中產生ReferenceError。@crud.route("/") def list(): x[3]
部署應用程式。
gcloud app deploy
存取索引頁面。
gcloud app browse
您可以查看訊息
An internal error occurred。-
前往 Google Cloud 控制台的「Error Reporting」頁面:
您也可以透過搜尋列找到這個頁面。
畫面會顯示列出的錯誤。
按一下錯誤即可查看相關資訊,例如錯誤最近一次發生的時間、發生次數及其直方圖,以及堆疊追蹤。
瞭解程式碼
如要回報未捕捉到的例外狀況,程式碼會先使用 Flask errorhandler 裝飾器,然後使用 Python 適用的 Cloud 用戶端程式庫,將例外狀況回報給 Error Reporting。
用戶端會自動新增追蹤資訊,並使用輔助函式從 Flask 要求中擷取相關要求詳細資料,然後將相關堆疊追蹤和 HTTP 環境填入錯誤報表,以供應用程式中任何未捕捉到的 InternalServerError HTTP 500 例外狀況使用。
清除所用資源
為避免因為本教學課程所用資源,導致系統向 Google Cloud 帳戶收取費用,請刪除含有相關資源的專案,或者保留專案但刪除個別資源。
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。
刪除專案的方法如下:
- 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.