跳至内容

我应该将所有业务逻辑保留在 AWS Lambda 函数服务中的层中吗?

0

【以下的问题经过翻译处理】 我正在设计一个应用程序,之前我没有接触过Lambda。当前,我已经实现了服务存储库模式,并在一个Express HTTP服务器上运行我的应用程序。

现在的设计模式-

模型-使用Sequelize模型调用数据库方法

存储库层-通过模型与数据库通信

服务层-调用存储库层并实现业务逻辑

控制层-调用服务层函数并发送JSON响应

现在我想迁移到AWS Lambda函数。我遇到了在Lambda中使用图层共享代码的情况。

把我的所有存储库、服务和模型都放在层中,并只实例化相关类,然后从Lambda调用函数是好的设计吗(这样Lambda将像我的当前设计中的控制器一样工作)?或者我应该将我的全部业务逻辑都移到Lambda函数中?这个问题是由于我看到的一篇博客引起的,我知道每次新的图层部署都要重新部署所有的Lambda。

请帮忙!

专家
已提问 2 年前80 查看次数
1 回答
0

【以下的回答经过翻译处理】 虽然两种方法都可以工作,但我建议将所有代码放入 Lambda 函数中。影响冷启动时间的因素之一是软件包大小。软件包大小包括所有层。将所有代码放在一层中并将其包含在所有函数中,你需要为所有函数支付额外的冷启动时间。你应该创建只包含所需内容的较小函数。此外,如果在一个组件中更改业务逻辑,则需要更新所有函数,这只会增加复杂性。

你应该将诸如通用第三方库之类的内容放在层中,这些内容需要在所有函数中使用。如监控等。

专家
已回答 2 年前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。