攻略丨雲開發VS Code 外掛 CloudBase Toolkit 雲函式除錯

Tencent_TCB發表於2020-07-07

Tencent CloudBase Toolkit 外掛 0.2.0 版起支援雲函式本地除錯和雲端除錯兩種除錯模式。

  • 本地除錯:使用 CloudBase CLI 在本地模擬執行 Node.js 雲函式,雲函式的 eventcontext 均為模擬引數,適合本地開發
  • 雲端除錯:使用雲端的雲函式例項進行除錯,所有的引數、環境均與雲端一致,適合定位複雜的線上問題

雲開發介紹

雲開發(Tencent CloudBase,TCB)是騰訊雲提供的雲原生一體化開發環境和工具平臺,為開發者提供高可用、自動彈性擴縮的後端雲服務,包含計算、儲存、託管等serverless化能力,可用於雲端一體化開發多種端應用(小程式,公眾號,Web 應用,Flutter 客戶端等),幫助開發者統一構建和管理後端服務和雲資源,避免了應用開發過程中繁瑣的伺服器搭建及運維,開發者可以專注於業務邏輯的實現,開發門檻更低,效率更高。產品文件:https://cloud.tencent.com/product/tcb

#本地除錯

本地除錯需要使用 CloudBase CLI 工具,請先安裝 CloudBase CLI 工具。

安裝地址:

https://docs.cloudbase.net/cli/intro.html?from=10004

#操作步驟

  1. 確保當前專案根目錄存在 cloudbaserc.json 配置檔案,如果不存在,請在資源管理區右鍵選擇【生成 cloudbaserc 配置檔案】
  2. 在需要除錯的位置打上斷點
  3. 選中需要除錯的雲函式目錄,右鍵【除錯雲函式】,在彈出的選項中選擇【本地除錯】即可。

img

#雲端除錯

雲端除錯會執行一個雲函式例項,供本地連線除錯使用。雲端除錯需要使用雲函式例項,會產生相應的執行費用。

雲端除錯只能通過 CloudBase Toolkit 的【除錯雲函式】觸發,無法通過 Debug 皮膚觸發。

WARNING

  1. 在開始操作前,建議你先閱讀注意事項。
  2. 不建議對生產環境或被頻繁呼叫的雲函式進行雲端除錯,可能會無法命中除錯,並阻塞其他的請求。

#操作步驟

  1. 確保當前專案根目錄存在 cloudbaserc.json 配置檔案,如果不存在,請在資源管理區右鍵選擇【生成 cloudbaserc 配置檔案】
  2. 選中需要除錯的雲函式目錄,右鍵【除錯雲函式】,在彈出的選項中選擇【雲端除錯】
  3. 在需要除錯的位置打上斷點
  4. 觸發你的雲函式。你可以根據的你的使用情況,從小程式端、SDK 或騰訊雲控制檯中觸發你的雲函式。

img

#注意事項

當前雲函式的雲端除錯能力處於 Beta 階段,歡迎試用並向我們反饋使用中的問題或建議。

在使用雲函式的雲端除錯功能時,需要了解如下資訊及注意點:

  • 雲端除錯使用了雲函式的一個實際執行的併發例項來進行除錯。
  • 由於觸發事件的隨機性,如果有多個例項存在的情況下,觸發事件可能隨機的落到某個例項上,因此不是任意請求均能命中除錯併發例項並可以開始除錯。
  • 除錯斷點暫停執行時:
    • 長時間未執行且未返回的情況下,可能會導致觸發端報錯,例如 API 閘道器提示超時。
    • 例項仍然處於計時狀態,並會在此次除錯完成時,繼續執行直到函式執行完成。整個過程記錄耗費的總時長作為此次函式的執行時長。
  • 從觸發併發例項執行,到最終完成除錯,單次執行完成的最長時間為 900 秒。即在除錯時如果中斷執行 900 秒後,將會強制終止此次執行,按函式執行時長 900 秒並超時進行統計和計量。
  • 當前版本的除錯能力,會使得雲函式超時配置為 900 秒,在正常退出除錯時將會重新設定超時為正常值。如果除錯命令異常退出或強行終止,會導致雲函式超時未能設定為正常值,此時可以通過再次部署(命令列)或手工編輯(控制檯)的方式修改雲函式的超時配置。

#配置項

一般情況下,你無需關心除錯的配置選項,CloudBase Toolkit 會自動生成相關的除錯配置,並啟動除錯功能。

#本地除錯

下面是本地除錯的 launch 配置,包含了如下選項:

  • type: VS Code 除錯型別,固定值為 node
  • request: VS Code 除錯啟動型別,固定值為 attach
  • port: 除錯程式埠,預設為 9229
  • name: 當前除錯項的名稱,預設為 "[函式名] 雲函式本地除錯" 形式
  • entry: 除錯的目標函式名
  • cloudbaseLocal: 標誌當前除錯項為適用於 CloudBase Toolkit 本地除錯的

json { "configurations": [ { "type": "node", "request": "attach", "port": 9229, "name": "[app] 雲函式本地除錯", "entry": "app", "cloudbaseLocal": true } ] }

#雲端除錯

下面是雲端除錯的 launch 配置,包含了如下選項:

  • type: VS Code 除錯型別,固定值為 node
  • request: VS Code 除錯啟動型別,固定值為 attach
  • port: 除錯程式埠,預設為 9222
  • name: 當前除錯項的名稱,預設為 "[函式名] 雲函式雲端除錯" 形式
  • remoteRoot: 雲端程式碼的根路徑,固定為 /var/user
  • localRoot: 原生程式碼的根路徑
  • cloudbaseRemote: 標誌當前除錯項為 CloudBase Toolkit 雲端除錯配置項

json { "type": "node", "request": "attach", "name": "[app] 雲函式雲端除錯", "port": 9222, "cloudbaseRemote": true, "remoteRoot": "/var/user", "localRoot": "${workspaceFolder}/functions/app" }

雲開發(Tencent CloudBase,TCB)是騰訊雲提供的雲原生一體化開發環境和工具平臺,為開發者提供高可用、自動彈性擴縮的後端雲服務,包含計算、儲存、託管等serverless化能力,可用於雲端一體化開發多種端應用(小程式,公眾號,Web 應用,Flutter 客戶端等),幫助開發者統一構建和管理後端服務和雲資源,避免了應用開發過程中繁瑣的伺服器搭建及運維,開發者可以專注於業務邏輯的實現,開發門檻更低,效率更高。

產品文件:https://cloud.tencent.com/product/tcb

技術文件:https://cloudbase.net

技術交流加Q群:601134960

最新資訊關注微信公眾號【騰訊云云開發】

☁ 更多精彩 掃描二維碼瞭解更多

img

相關文章