首页 > 解决方案 > 我应该在单个 Lambda 函数中定义我的 Lambda 函数还是分别定义每个函数

问题描述

由于 Lambda 每次调用都会向我收费,如果我在单个文件中定义所有函数不是更划算吗?还是不管 .py 文件如何,他们是否按函数调用收费?

标签: amazon-web-servicesaws-lambdaaws-lambda-layers

解决方案


对于定价,您按毫秒级别收费,因此每个功能越快越紧越好。

为了与“微服务”的理念和设计保持一致,并遵循 SOLID 原则中的“S”,您通常需要一个 lambda 函数来做一件事。

当你开始让 lambda 函数做两件事或更多事情的那一刻,你现在就将这些 lambda 和逻辑联系在一起了。理想情况下,一个 lambda 函数不需要知道另一个 lambda 函数。

您可以让一个 lambda 调用另一个,但您通常需要某种事件编排来为您执行此操作,例如 Eventbridge、SNS 或 Step Functions。

因此,我会避免将 3 组功能放入一个 lambda 函数中,因为现在您极大地限制了该函数可能被应用程序的其他部分重用的能力。


推荐阅读