@
mkb lambda 基本普通 api 服务器都可以用啊。
lambda 可以单一职责,也可以像普通框架开发那样一个函数处理所有 api ,一些框架都有对应的 serverless 版本,或者你高兴的话自己写一个 event 转换层也行。
一个 api 一个函数虽然函数多,但部署打包其实也没那么麻烦,建议上 aws cdk 部署 lambda ,这样部署起来非常轻松。cdk 里指定好对应函数代码入口后就是完全自动打包部署的
至于选择单一职责函数还是多职责函数,各有优缺点。单一职责函数后期运维的时候每个 api 都是彻底分开的,调查日志的时候极其轻松(不用在一堆 api 的日志里找对应 api 了),配合 apigateway 的话还可以精准统计每个 api 的请求负载,处理时间,错误率之类的。缺点就是 lambda 的冷启动问题,如果你 api 每天都请求数是稀疏的,那么每个函数都会遇到冷启动问题,反映到用户端就是 api 反应缓慢(当然 这个问题加钱就可以解决)
多职责函数的话就没有上面说的单一职责函数的优点了,好处就是冷启动问题会大为缓解
具体怎么选择看你自己