多个云环境的云函数如何同步
发布于 6 年前 作者 lhe 3416 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

我有两个环境,开发(dev)和生产(prod),我在开发环境下新建并部署好云函数后,切换到生产环境,需要切换环境并重新上传所有云函数,而且是一个一个上传,这样在云函数较多的情况下维护起来就很麻烦。

  • 希望提供的能力

是否可以提供云函数跨环境的迁移功能,或者开放命令行可以一行命令安装全部依赖并上传所有云函数。

还是说我的使用姿势不太对,有更简便的跨环境迁移云函数的能力

1 回复

我的解决办法是写一个 云函数 (router)

通过

tcb-router 一个云函数处理所有服务

所以上传也是一个云函数

改环境也是改一个哈哈哈    分分钟都能改好

不是云函数调用云函数

是云函数根据参数调用一个函数

详细看这里

https://github.com/TencentCloudBase/tcb-router

下面一个粟子

// 云函数入口文件    函数名router

const cloud = require(‘wx-server-sdk’);

//  npm  install tcb-router

const TcbRouter = require(‘tcb-router’);

const util = require(‘util.js’);

cloud.init()

const db = cloud.database();

const _ = db.command;

// 云函数入口函数

exports.main = async (event, context) => {

const app = new TcbRouter({ event });

/**

  * 登录

  */

app.router(‘login’, async (ctx, next) => {

await next();

}, async (ctx, next) => {

await next();

}, async (ctx) => {

const login = require(‘login/index.js’);

ctx.body = login.mian(event, context, db, _, util);

});

/**

  * 用户列表

  */

app.router(‘userList’, async (ctx, next) => {

await next();

}, async (ctx, next) => {

await next();

}, async (ctx) => {

const userList = require(‘userList/index.js’);

ctx.body = userList.mian(event, context, db, _, util);

});

/**

    * 测试

    */

app.router(‘test’, async (ctx, next) => {

await next();

}, async (ctx, next) => {

await next();

}, async (ctx) => {

const test = require(‘test/index.js’);

ctx.body = test.mian(event, context, db, _, util);

});

return app.serve();

}

业务处理js  这里写个测试的   其他的  自行参考

test/index.js

// router  目录下面建一个 test目录 这个是  test目录下的index.js

module.exports = {

mian: async (event, context, db, _, util) => {

/**

    * 业务操作

    */

return { event, context};

}}

前端调用

wx.cloud.callFunction({

name: ‘router’,

data: {

$url:‘test’

},

success: res => {

console.log(‘test调用成功’, res);

},

fail: err => {

console.log(‘test调用失败’, err);

}

})

回到顶部