背景
云开发 CloudBase 提供环境复制能力,不便开发者进行多环境下我的项目开发。
环境资源复制实际 (环境 A -> 环境 B)
函数资源
- 云函数代码从 A 环境对应函数拷贝,留神代码中写死的环境 ID A 需手动批改为 B。
若函数中应用 Node SDK 且 应用以后环境,倡议写法:
const cloudbase = require("@cloudbase/node-sdk")
const app = cloudbase.init({env: cloudbase.SYMBOL_CURRENT_ENV // 主动选取以后环境})
- 函数属性配置如 内存,超时工夫,环境变量,定时触发器,VPC,公网拜访配置,函数对应云接入配置 & 鉴权,CLS 日志配置均拷贝,无需开发者操作。
- 函数层不会复制,需手动在 B 中新建层。
数据库资源
- 数据库复制时仅在新环境中创立出同名的空集合,表数据需用户在控制台中手动导(A 环境库导出,导入到 B 环境库)。
- 数据库安全规定,索引设置均拷贝,开发者无需操作。
云存储资源
- 云存储配置如权限配置,缓存配置均拷贝,无需用户操作
- 具体的文件资源,需用户手动导(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
操作实际
- 云函数端应用 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 // 主动选取以后环境})
- 客户端在开发及生产环境下,别离指定对应环境 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