利用 now.sh 部署云函数 OnePoint

in 映射网盘 with 15 comments

利用 now.sh serverless 部署云函数 OnePoint

第一次接触到云函数是在腾讯云,由于是国内服务商,客服在线、开发热心、访问速度快、而且有一定的免费额度,整体体验还不错。但是自 2019 年 12 月起,腾讯云网关服务开始收费,对于个人开发者来说,云函数使用起来就没有那么舒服了。为了增强 OnePoint 项目的平台无关性,我便翻出了雪藏已久的 now.sh,又对 OnePoint 项目做了适配。

Now.sh 介绍

Now.sh 是 ZEIT 推出的一款支持 Docker、Nodejs、静态页面的全球化实时部署服务( Realtime Global Deployments )

更多细节内容参见官网 https://zeit.co/

免费套餐

免费额度

1575524734615.png

安装部署

注册账号

https://zeit.co/

安装 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

输入你的邮箱,收到邮件后确认登录。

配置与部署

  1. 下载 OnePoint 并解压 https://github.com/ukuq/onepoint/archive/master.zip
  2. 进入到 onepoint/test/nowsh 目录下。
  3. 修改 config.json 文件。配置方式参考 https://ukuq.github.io/onepoint/config.htmlhttps://www.onesrc.cn/p/details-of-onepoint-configjson-configuration.html。配置文件位置在 onepoint/test/nowsh/api/config.json
  4. 在onepoint/test/nowsh 目录下,命令行运行 now 命令部署

注:受限于 nowsh 对文件数的限制,部署时只能通过 npm 依赖。

配置文件(已过期)

  1. 新建一个文件夹 point
  2. 在 point 文件夹下新建 api 文件夹
  3. 下载 OnePoint https://github.com/ukuq/onepoint/archive/master.zip
  4. 解压,将文件放置到 api 文件夹下
  5. 修改 config.json 文件。配置方式参考 https://ukuq.github.io/onepoint/config.htmlhttps://www.onesrc.cn/p/details-of-onepoint-configjson-configuration.html
  6. 在 point 目录下,新建一个 now.json 文件
{
    "name": "onepoint",
    "version": 2,
    "functions": {
        "api/bin/index_now.js": {
            "maxDuration": 10
        }
    },
    "routes": [
        {
            "src": "/.*",
            "dest": "api/bin/index_now.js"
        }
    ]
}

最终文件夹看起来是这个效果

1575526209621.png

注意: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://onepoint.ukuq.now.sh

常见问题

在控制面板,例如:https://zeit.co/ukuq/onepoint/2iht8sk4h/functions

寻找 log(Realtime Requests),请带着 log 来反馈,没 log 反馈了也没用。

上一篇: onepoint 配置之 onedrive
下一篇: 如何优雅地抢火车票
Responses
  1. che13

    大佬方便适配下阿里云吗?我模仿腾讯云那篇做了一下,中间卡住了QAQ。
    上传onepoint压缩包之后无法运行报错,大佬有时间看看呗。
    报错信息:"errorMessage": "Process exited unexpectedly before completing request (duration: 54ms, maxMemoryUsage: 21.04MB)"

    Reply
    1. @che13

      阿里云容易被薅羊毛,暂不考虑,等把api搞好了再移植吧。腾讯云的你可以去控制台看看日志,没有具体日志没法分析。

      Reply
      1. che13
        @ukuq

        腾讯云成功,谢谢大佬!hk有缓存访问页面不到500ms,没有的大概2s
        阿里云的可以用子账户,里面放上一块钱就不管了,防止被反薅(逃~
        另外大佬,unpkg.com可以考虑用中国的镜像unpkg.zhimg.com替换下,实测(中国境内)访问速度和稳定性有明显提升。

        Reply
  2. [...]转载自 https://www.onesrc.cn/p/deploy-cloud-function-onepoint-with-nowsh-serverless.html[...]

    Reply
  3. xiaow

    安装到now.sh出错 后台也打不开 显示
    404: NOT_FOUND
    Code: RESOURCE_NOT_FOUND
    ID: tpe1:nhhcl-1580570419195-9e9f263a109e

    Reply
    1. @xiaow

      如果还无法解决,可加群 957170059

      Reply
    2. @xiaow

      我没有遇到过这种情况,建议你去类似 https://zeit.co/ukuq/onepoint 的控制台查看详细的日志,然后试试重新部署。

      Reply
      1. xiaow
        @ukuq

        如果通过GitHub部署出来的就是https://onepoint-bdnpnx6x9.now.sh/ 也不行

        Reply
      2. xiaow
        @ukuq

        https://point-nine.now.sh/这是我部署的地址,看下什么问题

        Reply
        1. @xiaow

          而且默认的域名应该是onepoint..now.sh

          Reply
        2. @xiaow

          这种情况看上去是now.json配置有误,你可以按照这个配置改一改看看。https://github.com/ukuq/onepoint/blob/master/test/nowsh/now.json

          Reply
      3. xiaow
        @ukuq

        控制台报错,你的现在可以部署吗?

        Reply
        1. xiaow
          @xiaow

          可以加个企鹅不?

          Reply
  4. xiaow

    懂了

    Reply
  5. xiaow

    博主安装了这个怎么添加网盘?

    Reply