前言

你可能听说过Serverless这个名称,Serverless简单来说就是用户无需关注服务器运维,配置,安全等部分,只需要关注应用本身。本文提到的Glitch就是这样的一个Serverless应用平台

目前国内国外也有很多这样的平台,下面是我知道的一部分

  • Heroku (支持Docker,老牌Serverless平台,免费提供少量数据库空间,未绑定银行卡每月应用时间550小时,绑定后增加450小时)
  • cloudflare Workers (Cloudfalare的新产品,似乎仅支持js)
  • 腾讯云函数 (国内平台,还在内测,商用后不知道会不会还有免费套餐)
  • 阿里云Serverless (没用过,好像没有免费套餐)
  • LeanCloud (每天有一定的休眠时间,有少量免费资源)
  • GCP (谷歌云平台,老牌Serverless,国内无法访问)
  • Glitch (免费每个月1000小时,无需银行卡,无数据库,原生支持js,其他编程语言也有办法支持)

本文使用的Glitch平台虽然刚成立不久,但是免费1000小时的时间可以保证你的应用持续在线,因为他的使用方式比较特殊,就写一篇文章来记录一下如何使用它

开始

注册

不解释了,自己打开注册 https://glitch.com/

创建项目

请选择第二个或者是第三个,第一个为静态网页,无法实现复杂的功能

项目设置

打开项目,这个平台提供了在线编辑器,但是他的在线编辑器并不是十分好用,我们需要在本地开发并上传到平台上

修改项目名称

点击左上角项目名称即可进行修改,不知道为什么我总是需要修改多次才有效。。。。

访问git

在这里找到git仓库链接

https开头的链接就是git仓库链接,这个链接十分重要,不要告诉其他人

使用通常的方式将仓库克隆到本地,克隆之后还需要在终端设置允许推送

像这样打开终端,并输入

1
git config receive.denyCurrentBranch updateInstead

这样才可以在本地开发之后推送代码到平台运行

经常会遇到的一些问题

端口

你会在初始仓库内看到这样一串代码

1
2
3
const listener = app.listen(process.env.PORT, () => {
console.log("Your app is listening on port " + listener.address().port);
});

需要注意平台的监听端口被保存在环境变量里,在本地修改后的代码监听端口也应该使用相同方式获得

无法提交或未同步本地代码和平台代码

刷新页面或者在浏览器编辑器切换打开的文件即可,如果遇到推送冲突的问题需要下拉取或者在浏览器终端内放弃更改

提交后的代码未刷新

在终端内输入refresh即可

数据存储

请看官方项目模板sqlite,目前似乎只提供sqlite存储,并不提供mysql等独立数据库服务器

使用Python开发

使用Python的方式和上面的一样,创建好项目后更改package.json,将start命令修改为python启动命令即可,当然也需要先安装依赖再启动

推荐,另一种方案

删除package.json,使用Web终端新建一个start.sh文件,在里面填上应用启动命令即可。