最佳實踐丨雲開發CloudBase多環境管理實踐

CloudBase雲開發發表於2021-11-24

背景

雲開發 CloudBase 提供環境複製能力,方便開發者進行多環境下專案開發。

環境資源複製實踐 (環境A -> 環境B)

函式資源

  1. 雲函式程式碼從 A 環境對應函式拷貝,注意程式碼中寫死的環境 ID A需手動修改為 B。

若函式中使用 Node SDK 且 使用當前環境,建議寫法:

const cloudbase = require("@cloudbase/node-sdk")
const app = cloudbase.init({
  env: cloudbase.SYMBOL_CURRENT_ENV // 自動選取當前環境
})
  1. 函式屬性配置如 記憶體,超時時間,環境變數,定時觸發器,VPC,公網訪問配置,函式對應雲接入配置&鑑權,CLS 日誌配置均拷貝,無需開發者操作。
  2. 函式層不會複製,需手動在 B 中新建層。

資料庫資源

  1. 資料庫複製時僅在新環境中建立出同名的空集合,表資料需使用者在控制檯中手動導 (A環境庫匯出,匯入到B環境庫)。
  2. 資料庫安全規則,索引設定均拷貝,開發者無需操作。

雲端儲存資源

  1. 雲端儲存配置如許可權配置,快取配置均拷貝,無需使用者操作
  2. 具體的檔案資源,需使用者手動導(A 環境匯出檔案資源,匯入到 B 環境)

推薦實踐:

  • 安裝 cloudbase cli 工具並登陸
npm i -g @cloudbase/cli

tcb login
  • 下載 A 環境全部檔案至本地
# 下載全部檔案
tcb storage download / localPath --dir -e A
  • 上傳本地檔案至 B 環境
tcb storage upload localPath -e B

多環境專案開發實踐

1. 開發環境,生產環境區分

基於環境複製能力,可以快速搭建開發 dev 和生產 prod 兩套環境(免去了重複建表,重複建函式的操作)。

參考文件:

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/concepts/environment.html

操作實踐

  1. 雲函式端使用SDK 時採用取動態環境寫法(類似函式資源複製),避免寫死環境 ID。
  • 小程式側示例
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
  • 騰訊雲側示例
const cloudbase = require("@cloudbase/node-sdk")
const app = cloudbase.init({
env: cloudbase.SYMBOL_CURRENT_ENV // 自動選取當前環境
})
  1. 客戶端在開發及生產環境下,分別指定對應環境 ID 即可
wx.cloud.init({
// 此處請填入環境 ID, 環境 ID 可開啟雲控制檯檢視
env: config.ENV // dev or prod
})
更進一步,為免去人為操作帶來的風險,可通過工程化的方式配置環境 ID,如 開發模式下配置 dev 環境 ID,生產模式下配置為 prod 環境 ID,具體實現此處不展開。

2. 專案協同開發

同環境下,多人協作開發時容易產生髒資料問題,各開發人員可基於專案初始環境複製出各自開發環境,各環境下除錯開發互不影響。

開通雲開發:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite

相關文章