zoukankan      html  css  js  c++  java
  • 最佳实践丨云开发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

  • 相关阅读:
    使用numpy生成二维正态分布
    %matplotlib inline的含义
    The following packages will be SUPERCEDED by a higher-priority channel是什么意思?
    conda命令详解
    软件包,API,SDK的区别
    IP组网实验(使用Cisco Packet Tracer路由器模拟软件)
    MAC地址表、ARP缓存表、路由表及交换机、路由器基本原理
    K'ed by TNT team是什么意思?
    使用Applescript、Automator和AfredWorkflow实现流式工作
    Redux源码分析之createStore
  • 原文地址:https://www.cnblogs.com/CloudBase/p/15569363.html
Copyright © 2011-2022 走看看