Vercel 部署个 Serverless 函数
· 阅读需 2 分钟
各大厂商都在卷 Serverless Function
,Serverless 是云计算的一种模型。
Serverless 是云计算的一种模型。以平台即服务(PaaS)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供, Serverless computing(无服务器运算,又被称为函数即服务 Function-as-a-Service,缩写为 FaaS)
Vercel 也有这个服务,小打小闹挺好的,据说流量高了后,这个服务很贵。
参考官方文档:vercel.com/docs/functions/quickstart
新建项目
新建个 Flask 项目,然后项目的结构是这样:
├── api
│ └── index.py
├── data
│ └── XXX
├── requirements.txt
├── static
├── templates
└── vercel.json
-
api 是请求入口
-
data 存放需要的文件数据
-
template 存放模板数据,比如邮件模板
-
requirements.txt 存放需要依赖的库
-
vercel.json 函数配置文件,比如指定函数入口:
-
{
"rewrites": [
{
"source": "/(.*)",
"destination": "/api/index"
}
],
"headers": [
{
"source": "/api/(.*)",
"headers": [
{
"key": "Access-Control-Allow-Origin",
"value": "https://blog.lichenghao.cn"
},
{
"key": "Access-Control-Allow-Methods",
"value": "*"
},
{
"key": "Access-Control-Allow-Headers",
"value": "*"
}
]
}
]
}
-
我们在入口文件 index.py
中写个入门程序 hello world
from flask import Flask
from flask_cors import CORS
app = Flask(__name__, template_folder='../templates')
CORS(app)
@app.route('/')
def hello_world():
return 'Hello World!'
安装 vercel cli
全局安装 vercel 命令用于部署项目
npm install -g vercel
发布项目
在项目路径下登录,根据你的情况选择登录信息
vercel login
最后打包部署项目
vercel --prod
测试项目
登录 vercel 在 项目—>Setting—>Domains
,绑定自己的域名后,就可在国内访问了!
虽然有内存的限制和函数运算时长等限制,但是一些简单的应用应该能够满足,比如:解析下用户 IP,发送个邮件通知,后面我就打算利用这个函数解析纯真的社区 IP 库。