我想知道在无服务器应用程序(AWS Lambdas)中使用Express.js作为中间件是否是一个好主意?我担心的事实是,在Express.js中存在单一功能设置,将来如果有很多请求进入,它将开始节流。我的担忧是正确的,还是我什么都没动摇。
答案 0 :(得分:1)
在构建单lambda和每个端点一个功能之间的决定并没有明确的答案。
一方面,如果您使用的是云形成-每个堆栈最多只能使用200个资源,这会使单路单lambda设计的小API变得笨拙,并迫使您走上类似的道路堆栈拆分,该方法有效,但在确实不应该存在的情况下增加了复杂性。此外,由于每个lambda函数都是其自己的部署程序包,因此共享代码变得更加困难-因此,您需要使用诸如手动包含的共享目录,本地NPM模块或良好的ol'方式复制粘贴之类的东西来共享逻辑您的功能。
另一方面,如果您选择将所有请求路由到lambda,然后在函数内部使用express路由请求-您将面临管理API Gateway通常可以为您处理的一些复杂性(例如请求模板验证之类的事情) ,或路由验证,或限制/ API使用管理)。
最终,您可以用任何一种方式构建成功的应用程序-因此,您需要考虑的重要事项是:
答案 1 :(得分:0)
我认为: Express启动了一个http服务器,但是Serverless(azure函数,lambda,...)是一个基于简单脚本的http服务器,因此...为什么要启动“另一个” http服务器?
无服务器是一个很棒的框架,因此您不需要任何其他工作...
Loopbak,Fastify,Http / s,Hapi等都适用相同的问题
关于路线: https://aws.amazon.com/blogs/aws/api-gateway-update-new-features-simplify-api-development/