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

背景

雲開發 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章