aws lambda 是基于极其轻量的 vm(基于 firecracker,据称只有5M的 overhead,启动速度也是毫秒级别)的服务,并不会保证有一个实例持续运行。超过一定时间没有访问的话,该 vm 就被干掉了。
serverless 就是这么一个概念,前端静态文件放 s3 上面,cloudfront 自带 cdn 功能,给个域名就行。api request 走的是 api gateway,相当于 load balancer,根据请求启动对应的 lambda。lambda 本身是有一个 handler 会接受到一个 event,里面带有一定格式的数据。所以实际上是没有服务进程的,只在使用的时候才会启动 vm 调用 handler。
比较流行的一种开发方式是,还是开发正常的 web service,完全可以单独部署。在它的基础之上,把 api gateway 发过来的 event 再转换成 http request,交给原有的逻辑处理,再把 http response 转换回 api gateway 能理解的格式。所以这个 web service 实际上并没有启动一个 tcp 服务,而是 handler 里让原本的服务处理一个 http request 就完了。
【 在 keygen 的大作中提到: 】
: 我感觉不是太理解你这个 web service 的定义
: 一般作为 web service,不是常驻一个服务端进程,一直处理传过来的 http request 吗?
:
: ...................
--
修改:eGust FROM 222.153.59.*
FROM 222.153.59.*