利用 now.sh serverless 部署云函数 OnePoint
第一次接触到云函数是在腾讯云,由于是国内服务商,客服在线、开发热心、访问速度快、而且有一定的免费额度,整体体验还不错。但是自 2019 年 12 月起,腾讯云网关服务开始收费,对于个人开发者来说,云函数使用起来就没有那么舒服了。为了增强 OnePoint 项目的平台无关性,我便翻出了雪藏已久的 now.sh,又对 OnePoint 项目做了适配。
Now.sh 介绍
Now.sh 是 ZEIT 推出的一款支持 Docker、Nodejs、静态页面的全球化实时部署服务( Realtime Global Deployments )
更多细节内容参见官网 https://zeit.co/。
免费套餐
- 支持 https、自定义域名
- 支持 Github 部署
- 支持 智能 cdn
- 不限额度的 Websites 和 api
- 支持 Node.js, Go 等云函数
免费额度
安装部署
注册账号
安装 CLI
安装 Nodejs
now.sh 的命令行客户端是基于 nodejs 的,所以首先安装 nodejs 环境。
Nodejs 官方地址:https://nodejs.org/en/download/
下载后自行运行安装,不再赘述。
打开 cmd 命令行终端,输入 npm --version 验证安装是否正确。
C:\Users\15591\Desktop
$ npm --version
6.9.0
安装 now.sh 客户端
npm install -g now@16.7.3
登录
打开 cmd 命令行终端,输入
now login
输入你的邮箱,收到邮件后确认登录。
配置与部署
- 下载 OnePoint 并解压 https://github.com/ukuq/onepoint/archive/master.zip
- 进入到 onepoint/test/nowsh 目录下。
- 修改 config.json 文件。配置方式参考 https://ukuq.github.io/onepoint/config.html 和 https://www.onesrc.cn/p/details-of-onepoint-configjson-configuration.html。配置文件位置在 onepoint/test/nowsh/api/config.json
- 在onepoint/test/nowsh 目录下,命令行运行 now 命令部署
注:受限于 nowsh 对文件数的限制,部署时只能通过 npm 依赖。
配置文件(已过期)
- 新建一个文件夹 point
- 在 point 文件夹下新建 api 文件夹
- 下载 OnePoint https://github.com/ukuq/onepoint/archive/master.zip
- 解压,将文件放置到 api 文件夹下
- 修改 config.json 文件。配置方式参考 https://ukuq.github.io/onepoint/config.html 和 https://www.onesrc.cn/p/details-of-onepoint-configjson-configuration.html
- 在 point 目录下,新建一个 now.json 文件
{
"name": "onepoint",
"version": 2,
"functions": {
"api/bin/index_now.js": {
"maxDuration": 10
}
},
"routes": [
{
"src": "/.*",
"dest": "api/bin/index_now.js"
}
]
}
最终文件夹看起来是这个效果
注意:now.json位置不要放错了(步骤6)
部署至 now(已过期)
打开cmd 命令行,进入到 point 文件夹,执行 now 命令
$ now
> Deploying ~\MyFiles\WorkSpace\Git\point under ukuq
> Using project onepoint
> Synced 2 files [3s]
> https://onepoint-lxjh2xlj9.now.sh [8s]
> Ready! Deployed to https://onepoint.ukuq.now.sh [in clipboard] [42s]
部署成功
常见问题
在控制面板,例如:https://zeit.co/ukuq/onepoint/2iht8sk4h/functions
寻找 log(Realtime Requests),请带着 log 来反馈,没 log 反馈了也没用。
本文由 ukuq 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Apr 16, 2020 at 04:51 pm
大佬方便适配下阿里云吗?我模仿腾讯云那篇做了一下,中间卡住了QAQ。
上传onepoint压缩包之后无法运行报错,大佬有时间看看呗。
报错信息:"errorMessage": "Process exited unexpectedly before completing request (duration: 54ms, maxMemoryUsage: 21.04MB)"
阿里云容易被薅羊毛,暂不考虑,等把api搞好了再移植吧。腾讯云的你可以去控制台看看日志,没有具体日志没法分析。
腾讯云成功,谢谢大佬!hk有缓存访问页面不到500ms,没有的大概2s
阿里云的可以用子账户,里面放上一块钱就不管了,防止被反薅(逃~
另外大佬,unpkg.com可以考虑用中国的镜像unpkg.zhimg.com替换下,实测(中国境内)访问速度和稳定性有明显提升。
[...]转载自 https://www.onesrc.cn/p/deploy-cloud-function-onepoint-with-nowsh-serverless.html[...]
安装到now.sh出错 后台也打不开 显示
404: NOT_FOUND
Code: RESOURCE_NOT_FOUND
ID: tpe1:nhhcl-1580570419195-9e9f263a109e
如果还无法解决,可加群 957170059
我没有遇到过这种情况,建议你去类似 https://zeit.co/ukuq/onepoint 的控制台查看详细的日志,然后试试重新部署。
如果通过GitHub部署出来的就是https://onepoint-bdnpnx6x9.now.sh/ 也不行
https://point-nine.now.sh/这是我部署的地址,看下什么问题
而且默认的域名应该是onepoint..now.sh
这种情况看上去是now.json配置有误,你可以按照这个配置改一改看看。https://github.com/ukuq/onepoint/blob/master/test/nowsh/now.json
控制台报错,你的现在可以部署吗?
可以加个企鹅不?
懂了
博主安装了这个怎么添加网盘?