您可以使用 Node.js 適用的 Error Reporting 程式庫,從 Node.js 應用程式傳送錯誤事件至 Error Reporting。 使用 Node.js 適用的 Error Reporting 程式庫,為下列情況建立錯誤群組:
- 含有記錄檔項目的記錄檔 bucket 具有客戶自行管理的加密金鑰 (CMEK)。
- 記錄檔 bucket 符合下列其中一項條件:
- 記錄 bucket 儲存在記錄項目來源的專案中。
- 記錄項目已轉送至專案,然後該專案將這些記錄項目儲存在其擁有的記錄 bucket 中。
- 您想回報自訂錯誤事件。
Error Reporting 已與部分 Google Cloud 服務整合,如 Cloud Run 函式、App Engine、Compute Engine 和 Google Kubernetes Engine。Error Reporting 會顯示在這些服務上執行的應用程式記錄到 Cloud Logging 的錯誤事件。詳情請參閱本頁面的「在 Google Cloud上執行」一節。
另外,您也可以使用 Logging,將錯誤事件傳送至 Error Reporting。如要瞭解資料格式要求,請參閱「格式化記錄項目以回報錯誤事件」。
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Error Reporting API .
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Error Reporting API .
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.- 設定適當的 Node.js 開發環境。
安裝用戶端程式庫
Node.js 適用的 Error Reporting 程式庫可讓您監控及查看 Node.js 應用程式所回報的錯誤事件 (不論是在哪裡執行 Node.js 應用程式,幾乎都能收到錯誤報告)。
-
使用 npm 安裝套件:
npm install @google-cloud/error-reporting
-
匯入程式庫並將用戶端實例化,以開始回報錯誤:
如要進一步瞭解安裝相關資訊,請參閱 Node.js 適用的 Error Reporting 程式庫說明文件。您也可以使用問題追蹤工具報告問題。
設定用戶端程式庫
您可以自訂 Node.js 適用的 Error Reporting 程式庫行為。如需可能設定選項的清單,請參閱程式庫設定說明。這些選項可傳入傳送至程式庫建構函式的 options 物件。
其他整合功能
如要進一步瞭解 Node.js 適用的 Error Reporting 程式庫與其他 Node.js 網路架構之間的整合,請參閱 GitHub 上的程式庫存放區。
在 Google Cloud上執行應用程式
如要使用 projects.events.report 建立錯誤群組,服務帳戶必須具備Error Reporting 撰寫者角色 (roles/errorreporting.writer)。
部分 Google Cloud 服務會自動將 Error Reporting 寫入者角色 (roles/errorreporting.writer) 授予適當的服務帳戶。不過,您必須為部分服務的適當服務帳戶授予這個角色。
Cloud Run 和 Cloud Run functions
Cloud Run 使用的預設服務帳戶具有 Error Reporting 寫入者角色 (roles/errorreporting.writer) 的權限。
不需要明確提供憑證,即可使用 Node.js 適用的 Error Reporting 程式庫。
Cloud Run 設定為自動使用 Error Reporting。未處理的 JavaScript 例外狀況會出現在 Logging 之中並由 Error Reporting 處理,不需使用 Node.js 適用的 Error Reporting 程式庫。
範例:App Engine 彈性環境
App Engine 會自動將 Error Reporting 寫入者角色 (roles/errorreporting.writer) 授予預設服務帳戶。
不需要明確提供憑證,即可使用 Node.js 適用的 Error Reporting 程式庫。
系統會自動為 App Engine 彈性環境應用程式啟用 Error Reporting。您不需要另外進行設定。Google Kubernetes Engine
如要在 Google Kubernetes Engine 中使用 Error Reporting,請按照下列步驟操作:
請確保容器使用的服務帳戶已取得 Error Reporting 寫入者角色 (
roles/errorreporting.writer)。您可以使用 Compute Engine 預設服務帳戶或自訂服務帳戶。
如要瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
建立叢集,並授予叢集
cloud-platformaccess scope。舉例來說,下列建立指令會指定
cloud-platform存取權範圍和服務帳戶:gcloud container clusters create CLUSTER_NAME --service-account SERVICE_ACCT_NAME --scopes=cloud-platform
Compute Engine
如要搭配使用 Error Reporting 與 Compute Engine VM 執行個體,請完成下列步驟:
確認 VM 執行個體使用的服務帳戶已取得 Error Reporting 寫入者角色 (
roles/errorreporting.writer)。您可以使用 Compute Engine 預設服務帳戶或自訂服務帳戶。
如要瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
-
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Compute Engine」的結果。
選取要接收
cloud-platform存取範圍的 VM 執行個體。按一下「停止」,然後按一下「編輯」。
在「Identity and API access」(身分及 API 存取權) 區段,選取具有 Error Reporting 寫入者角色 (
roles/errorreporting.writer) 的服務帳戶。在「存取權範圍」專區,選取「允許所有 Cloud API 的完整存取權」,然後儲存變更。
點選「啟動/重新啟用」。
範例
您可以呼叫 report 方法手動回報錯誤,如下列範例所示:
使用 Express.js 回報錯誤
Node.js 適用的 Error Reporting 程式庫可將 Error Reporting 整合至熱門的 Node.js 網路架構,如 Express.js:
在本機開發環境中執行應用程式
如要在本機開發環境中使用 Node.js 適用的 Error Reporting 程式庫 (例如在自己的工作站上執行程式庫),您必須為 Node.js 適用的 Error Reporting 程式庫提供本機應用程式預設憑證。詳情請參閱「向 Error Reporting 進行驗證」。
如要在本機開發環境中使用本頁的 Node.js 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
projects.events.report 方法也支援 API 金鑰。如要使用 API 金鑰進行驗證,則不需要設定本機應用程式預設憑證檔案。詳情請參閱 Google Cloud 驗證說明文件中的「建立 API 金鑰」。
查看錯誤群組
前往 Google Cloud 控制台的「Error Reporting」頁面:
您也可以透過搜尋列找到這個頁面。
詳情請參閱「查看及篩選錯誤群組」。