休了一个长假, 换了换脑子, 敲起键盘来忽然不知道写的什么内容笔记好. 刚好最近搞了个整活的网站, 记载一下整个整活的进程. (尽管整活, 可是Vercel是真好用啊.)
作为一位多年的整活偷懒白嫖达人, 我也开发过不少有用的没用的应用和网站, 这次的网站上线的出奇的顺利. 甚至分文没花守住了三天将近30k的拜访量.(域名的钱不是钱, 是出资.)
咱们或多或少的都尝试过布置一些自己的小功用, 或许是个网站, 或许是个服务器或许数据库. 可是这个功用都需求咱们拥有一个个人独立服务器和公网ip. 而现在的各种云服务的供货商, 大的老用户不如狗, 小的就是买彩票. 三个九的保障率都快达不到(是吧, 某鸟)(我就偷个懒懒写了几天, 你真就三个九都达不到了?). 假如想租个能用的服务器, 一个月也得五六十. 开个会员十五都犹豫半天的咱们, 还能开这个? 并且咱们的普遍的需求就是构建一个自己的小工具, 共享一下自己运用的小网站. 不想太多的费心和吃力, 能主动布置和供给各样有用的小功用更好了就. 重要的是免费.
Vercel
这个网站就是Vercel, 相信不少的朋友们都或多或少的听过或运用过. 或许咱们最常用的场景是挂hexo的博客. 这也是我第一次听到Vercel的当地. 我的个人博客也一向挂在hexo中.clwater.top/ 写到这儿的时候现已运行了700多天了. 就连免费的https都不必一年一签了.
Vercel实际上就是一个网站保管服务, 和Github Page相似, 你也能够关联到你的GitHub账号中, 使其能够主动布置. 不仅如此, Vercel还支撑布置serverless接口, 也就是说, 你能够把node.js, Python, Go, Ruby也保管到Vercel中, 关于一些轻量级的功用和网站来说, 现已满意运用了. 就在最近(也或许不是那么近), Vercel还增加了对数据库的支撑. 联系型和非联系型的数据库都支撑.
一个网站, 助力你的一切整活愿望.
整活网站
详细的整活网站就不放上来了, 我怕社死. 不过官方供给示例网站现已满意咱们运用了也.
整活网站包含了一个前端页面, 一个服务端, 甚至还有一个数据库. 尽管性能和总量有必定的限制, 可是它免费啊. Vercel供给的免费资源来说仍是十分充足的. 完全满意满意你绝大部分的需求.
带宽的话由于网站中有段音频没有压缩, 导致浪费了不少. 不过现在看来也绰绰有余.
数据库
数据库这儿运用的是Durable Redis(KV)数据库, 整活要的是上班快, 什么数据库规划范式, 能用就行.
详细的运用办法如下:
进入vercel.com/dashboard/s…页面中,
咱们挑选创立一个Durable Redis(KV)的数据库,
起个姓名, 选个节点位置啥的, 不过都是国外的, 衔接速度就不必考虑, 找个随眼缘的就行.
当咱们创立完成后, 咱们就能够配置和运用了. Vercel供给了一些常见的运用办法, 用一般radies管理工具也能够衔接到Vercel的数据库.
这次咱们就直接经过CLI进行简略的操作了.
咱们能够看到, 数据库中的数据现已发生变化.
服务端
服务端的话这儿咱们运用的是Python, 这儿我建议是直接从Vercel的模板中进行创立. Flask和Django看你哪个用的顺手就选哪个.
详细的运用办法如下:
一些基础信息完成后, 点击Create, 咱们就能够等着咱们的服务布置上去了.
此刻, 你的服务现已布置到云端, 你能够直接经过外网进行拜访, 也能够绑定你自己的域名.
经过GitHub授权给Vercel后, 对应的项目就主动在你的GitHub中创立了.
这儿咱们就简略添加两个接口, 衔接到咱们刚刚创立的数据库, 用于设置和查询.
import os
import requests
import json
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello Vercel'
@app.route('/get')
def get():
token = os.environ.get('token')
headers = {
'Authorization': 'Bearer ' token,
}
url = "https://loyal-sole-43611.kv.vercel-storage.com/get/test_key"
rsp = requests.get(url, headers=headers)
return json.loads(rsp.text)['result']
@app.route('/set/<count>')
def set(count):
token = os.environ.get('token')
headers = {
'Authorization': 'Bearer ' token,
}
url = "https://loyal-sole-43611.kv.vercel-storage.com/set/test_key/" str(count)
rsp = requests.get(url, headers=headers)
return str(count)
if __name__ == "__main__":
app.run()
需求注意的是, 为了数据的安全性, Vercel能够经过Environment Variable来进行环境变量的配置, 记得上传的时候不要把这些私有的配置文件上传上去.
能够看到, 咱们现在现已把后端和数据库衔接了起来. 咱们能够经过服务端对数据库的内容进行修正了.
Web页面
接下来咱们就创立一个Web页面, 这儿能够看到, 主流的前端框架Vercel都是支撑的.(不愧是前端)
这儿咱们挑选Vercel KV for Redis Next.js, 方便进行修正.
详细的运用办法如下:
这儿会提示咱们创立对应的数据库, 当然你也能够在后面自己衔接或许手动配置。
demo的相关页面如下,
功用很简略, 记载一下这个页面的拜访量, 这儿选用的办法是直接拜访数据库, 你当然能够经过你的服务器去进行处理. 这儿就不过多赘述.
通篇下来, 都没什么特别的当地, 一切的功用基本都能做到开箱即用, 又都以整活小功用居多.
写到这儿的时候, 刚看了一天的阿里云服务不可用的工作. 忽然想了想, 都是整活了, 两个九的可用性就现已完全能够满意了不是.