本頁面說明 Cloud Run 錯誤的常見疑難排解策略。Personalized Service Health 會發布所有源自基礎 Google Cloud 基礎架構的 Cloud Run 事件,以便找出影響專案的 Google Cloud 服務中斷情形。您也可以考慮設定 Personalized Service Health 事件的快訊。如要瞭解影響所有 Google Cloud 服務的事件,請參閱 Google Cloud Service Health 資訊主頁。
如要解決與 Cloud Run 資源相關的問題,請參閱 Cloud Run 疑難排解指南中的以下各節:
Cloud Run 疑難排解策略
下列各節說明如何套用一般疑難排解策略來解決錯誤。如果您按照疑難排解指南中的步驟操作,但仍持續發生錯誤,請參閱「後續步驟」。
使用 Cloud Logging 輸出正常記錄檔
如果您有可用於偵錯的良好記錄,就能更輕鬆地排解 Cloud Run 資源的問題。您應以將容器記錄與要求記錄建立關聯的方式寫入記錄。
有了相關聯的記錄,您就能找出需要進一步分析的要求、找到要求追蹤記錄,並分析問題的根本原因。如要進一步瞭解如何寫入記錄,請參閱「寫入容器記錄」。
使用記錄檔探索工具調查執行個體
Cloud Run 中的每個要求記錄都包含 instanceId
欄位,用於識別處理要求的執行個體。視您指定的並行處理值而定,單一執行個體可以同時處理多個要求。
如果有多個執行個體同時產生記錄,您應篩選執行個體,找出導致執行個體當機的依序要求。
篩選執行個體可讓您對冷啟動或延遲時間增加的特定效能問題進行偵錯。當後續並行要求中重複使用值時,這些問題也可能會與在全域範圍內宣告的變數綁定。舉例來說,如果您為執行個體建立單一連線池全域物件,然後在多個要求中使用該物件,就會發生這種情況。
如要在記錄檔探索工具中篩選特定執行個體,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「Logs Explorer」(記錄檔探索工具) 頁面:
在頁面頂端選取現有 Google Cloud 專案,或建立新專案。
針對服務,選取「Cloud Run 修訂版本」資源;針對工作,選取「Cloud Run 工作」。
展開記錄項目,即可按特定例項篩選。
按一下執行個體 ID 值,然後選取「Show matching entries」。
解決非預期的延遲要求
如果遇到延遲問題,請採取以下行動:
請檢查延遲情況是否會影響所有對 Cloud Run 資源的請求,或是只影響一小部分。Cloud Run 會自動與 Cloud Monitoring 整合,您不需進行任何安裝或設定。
如要查看個別要求的延遲指標,請按照下列步驟操作:
前往 Google Cloud 控制台的「Cloud Run」頁面:
從清單中選取服務或工作。
按一下「METRICS」分頁標籤,即可查看「Request latencies」資訊主頁。
如要在 Cloud Monitoring 中查看延遲指標,請在「指標」清單中依序選取「Cloud Run 修訂版本」>「Request_latencies」>「Request latency」。
如需所有可用 Cloud Run 指標的清單和更深入的詳細資料,請參閱 Cloud Monitoring 中的 Google Cloud 指標。
找出延遲時間長的要求,瞭解延遲的來源。您可以使用 Cloud Trace 或 Cloud Logging,瞭解特定要求花費了多少時間。
如要使用 Cloud Logging 找出延遲時間過長的要求,請套用
traceSampled=true
篩選器,將 Cloud Logging 中的記錄與 Cloud Trace 中的追蹤記錄建立關聯。詳情請參閱「與 Cloud Logging 整合」。有時,其他服務的要求等依附元件可能會導致延遲問題。如要識別這類要求,您應明確記錄鎖定要求。如果您沒有輸出這類記錄,可能會顯示為 Cloud Run 服務造成的延遲問題。
此外,您應考慮在所選時間範圍內評估延遲時間尖峰。尖峰值的重要性是相對的;在小視窗中,尖峰值可能會很明顯,但在大型視窗中則可能微不足道,反之亦然。因此,時間視窗會對延遲資料的解讀造成重大影響。
請嘗試增加執行個體數量下限,藉此減少傳入要求的延遲時間,並避免發生冷啟動。您也應考慮修改來源程式碼,並調整調整設定,以限制與後端服務的連線數量。
詳情請參閱「最佳化效能」。
使用 Gemini 輔助功能排解問題
您可以使用 Gemini Cloud Assist 即時通訊功能分析記錄並排解錯誤。有了 Gemini 的協助,您就能運用這項工具的記錄分析功能,快速找出並解決錯誤,節省寶貴的時間和精力。
如要透過 Google Cloud 控制台使用 Gemini Cloud Assist,請按照下列步驟操作:
- 確認您已為 Google Cloud 使用者帳戶和專案設定 Gemini Cloud Assist。
在 Google Cloud 專案中設定 Cloud Run 開發環境,並確保您具備適當的部署權限。
前往 Google Cloud 控制台的「Cloud Run」頁面。
在控制台工具列中選取 Google Cloud 專案。使用與您在獲得 Gemini Cloud Assist 存取權後提交的專案 ID 相關聯的專案。
按一下「spark」「Open or close Gemini AI chat」。
Gemini 面板隨即開啟。
如有需要,請點按「接受」,表示同意條款。
如果您對特定應用程式有疑問,請先前往顯示資源的頁面,然後再提出問題,以便提供背景資訊。產生回應時,Gemini 會納入目前控制台頁面和專案的相關資訊。
在 Gemini 面板中輸入提示。
下表提供使用 Gemini Cloud Assist 搭配 Cloud Run 的提示範例。
提示 回覆類型 「能否說明我在 Cloud Run 容器記錄檔中看到的錯誤訊息?」 如果提示中沒有特定錯誤訊息,輸出內容會針對常見的 Cloud Run 容器記錄錯誤訊息提供疑難排解指引。 「能否說明 Cloud Run 服務記錄檔中的錯誤訊息?」
HTTP 429 The request was aborted because there was no available instance. The Cloud Run service might have reached its maximum container instance limit or the service was otherwise not able to scale to incoming requests. This might be caused by a sudden increase in traffic, a long container startup time or a long request processing time."
說明 Cloud Run 錯誤訊息,以及如何解決錯誤。 「如何修正部署 Cloud Run 服務時出現的以下錯誤訊息?
HTTP 404: Not found
錯誤的常見原因和疑難排解方式。 「我的 Cloud Run 服務一直當機,請問可能的原因為何?」 調查原因和解決問題的方法。 「如何判斷記錄中出現的 5XX 錯誤是否是 Google 基礎架構服務中斷所致?」 判斷 5XX 錯誤原因的步驟。 「如何找出錯誤 com.google.apps.framework.request.BadRequestException Project PROJECT has serving status SYSTEM_DISABLED and cannot be modified
的原因?」表示 Google Cloud 專案已在系統層級停用。提供進一步調查原因的步驟。 「如果已設定 ingress=internal
,為何我可以透過瀏覽器存取 Cloud Run 服務?」說明將 ingress
設定為internal
時的預期行為。包括其他在瀏覽器中似乎可存取的情況。
詳情請參閱下列資源:
- 瞭解如何撰寫更優質的提示。
- 瞭解如何使用 Gemini Cloud Assist 面板。
- 請參閱「使用 Gemini 進行 AI 輔助及開發」一文。
- 瞭解 Gemini for Google Cloud 如何使用您的資料。
後續步驟
如果您無法在 Cloud Run 說明中找到問題的解決方法,請按照下列步驟操作:
- 請與 Cloud Customer Care 聯絡,建立客服案件。
- 在 StackOverflow 上提問,即可取得社群支援,或是使用
google-cloud-run
標記搜尋類似問題。 - 使用公開版 Issue Tracker 回報錯誤或功能要求。