rrun+juicefs 进行nodejs 模块的运行
参考图
玩法说明
我们使用ncc 将开发的node 应该直接all-in-one,同时暴露一个默认的npm (cmd )实现,同时直接利用juicefs 的s3 endpoint 上传到s3 中,juicefs 会做为一个
sidecar 挂载到我们的rrun 运行时节点中(可以基于虚拟机,以及容器,都是不错的选择),之后就可以直接运行服务了
参考实例
- package.json
{
"name": "app-test",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"hashids": "^2.2.10",
"rrun": "^1.0.5"
},
"scripts": {
"app": "rrun myapp/index.js",
"build":"ncc build app.js -o myapp"
},
"devDependencies": {
"@vercel/ncc": "^0.38.1"
}
}
- app.js
集成hashids 同时暴露一个默认实现
const hashids = require("hashids")
module.exports = ()=>{
let id = new hashids("demoappaaa",100).encode(2222)
console.log(id)
}
- ncc 打包
ncc build app.js -o myapp
- 运行
yarn app
- 效果
说明
rrun 只是一个不错的基于命令行加载node 模块的方法,类似的工具比较多,或者自己写一个,而且如果能加载远端就更好了(同时包含权限控制的,这个可以自己编写),实际上以上玩法就有点serverless 的影子了,一些开源serverless 实现对于服务调用也是使用了类似的方法,github action 中使用nodejs 开发action 也是使用了类似的方法
参考资料
https://www.npmjs.com/package/rrun
https://deno.land/
https://juicefs.com/