在学习 Serverless Framework 的过程中,我看到了几篇教程,介绍如何在 Lambda 中运行 Express 实例。这对我来说似乎是一种浪费,而且与 Lambda 函数的目的相违背。
通常的方法涉及在 Lambda 中运行一个 Express 实例,并将 API Gateway 请求代理到 Express 路由器进行内部处理。
对于我来说,简单的方法就是在 API Gateway 中创建一个API,并将单个请求路由到用于处理的Lambda。我有什么遗漏的吗?
考虑到 Lambdas 的执行时间为 15 分钟,在内存方面只是启动 Express 实例不是非常昂贵吗?此外,最多只能并发执行 100 个 Lambda 将会造成瓶颈,不是吗?在这种情况下,使用 EC2 实例会更加适合吗?像这样使用 Lambda 似乎有些过度。
我看到在 Lambda 中运行 Express 实例仅有两个好处:
- 在迁移现有的用 Express 编写的应用程序时,可以逐步将应用程序拆分为 API Gateway 终端点。
- 内部处理路由,而不依赖于 API Gateway 的请求/响应模型(代理到 Express 路由器)。
如果我遗漏了什么,这种方法的好处是什么?
一些推广此方法的资源: