设每个用户下每个命名空间,可以单独配置一个数据库用于所建云函数的链接。
API种类 1、数据库交互 2、静态资源上传与请求 3、函数内运算响应
沙箱逃逸
vm
const vm = require('vm');
vm.runInNewContext('this.constructor.constructor("return process")().exit()');
console.log('Never gets executed.');
vm2
const {VM} = require('vm2');
new VM().run('this.constructor.constructor("return process")().exit()');
// Throws ReferenceError: process is not defined
GET /faas/:id
return
{
  //标准返回对象
}
POST /faas/:id
{
  //示例对象
}
return
{
  //标准返回对象
}
POST /addfunc
{
  user-token,
  codeStr:String, //代码字符串
  method:String, //函数方法
  objScan:Object, //输入实例对象
  comment:String, //函数功能备注
  maxruntime
}
return
{
  status,
  message,
}
GET /funclist
user-token
return
{
  funcarray:Array[{
      functionid,
      createTime,
      invokeTimes,
      namespaceid,
      master,
      ...
    }]
}
GET /funclist/:namespaceid
user-token
return
{
  funcarray:Array[{
      functionid,
      createTime,
      invokeTimes,
      namespaceid,
      master,
      ...
    }]
}