在部署前測試 Cloud Run 函式

本指南說明如何在 Google Cloud 控制台 中測試 Cloud Run 函式,再進行部署。這項功能適用於 Node.js 和 Python 函式。

準備要測試的函式

如要準備測試函式,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中開啟「Functions Overview」(函式總覽) 頁面:

    前往「Cloud Run functions Overview」(Cloud Run 函式總覽) 頁面

    請確保選取的是已啟用 Cloud Run 函式的專案。

  2. 按一下「建立函式」即可建立新的 Node.js 或 Python 函式,或是選取現有的 Node.js 或 Python 函式,然後按一下「編輯」加以編輯。

  3. 按一下「下一步」前往程式碼編輯頁面:

    顯示函式預先部署測試面板的螢幕截圖

  4. 按一下「測試函式」即可開始測試程序。

  5. 系統提示時,請按一下「開始測試」,授權使用 Cloud Shell 終端機。

執行測試

完成上述步驟後,右側會開啟觸發事件面板,確認函式已準備好進行測試。按一下「執行測試」

顯示函式預先部署測試面板的螢幕截圖

測試程序的這個階段包含下列元件:

  • 觸發事件面板。觸發事件面板會預先填入與您在設定頁面中指定的事件觸發條件相符的酬載。這是函式的輸入內容。
  • Cloud Shell 輸出視窗。Cloud Shell 輸出視窗會顯示 HTTP 狀態碼,以及傳回給呼叫端的任何回應。
  • 執行測試:執行測試。

您可以在 Cloud Shell 視窗中觀察測試的輸出內容:

顯示 Cloud Shell 輸出視窗的螢幕截圖

Cloud Shell 終端機

您可以在畫面底部的 Cloud Shell 終端機中,查看函式的記錄輸出內容。舉例來說,開啟測試面板時,您會看到原始碼封裝輸出內容。執行測試時,您會看到來源程式碼變更和執行層級輸出內容,包括 console.log 和錯誤。

如果測試失敗,Cloud Shell 終端機會顯示錯誤訊息,協助您找出確切原因,例如:

[11:31:47 AM] - Provided module can't be loaded.
Is there a syntax error in your code?
Detailed stack trace: /workspace/index.js:11
    : 'World';
    ^

SyntaxError: Unexpected token ':'
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1048:15)
    at Module._compile (node:internal/modules/cjs/loader:1083:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1173:10)
    at Module.load (node:internal/modules/cjs/loader:997:32)
    at Module._load (node:internal/modules/cjs/loader:838:12)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at getUserFunction (/workspace/node_modules/@google-cloud/functions-framework/build/src/loader.js:98:30)
    at async main (/workspace/node_modules/@google-cloud/functions-framework/build/src/main.js:35:32)

[11:31:47 AM] - Could not load the function, shutting down.

部署

測試完成後,按一下「Deploy」(部署),即可照常部署函式。