设每个用户下每个命名空间,可以单独配置一个数据库用于所建云函数的链接。
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,
...
}]
}