从 AWS lambda 服务中的其他 lambda 调用 lambda 是个好主意吗?

Is it a good idea to invoke lambda from other lambda in AWS lambda service?

我有几个 lambda 函数,所有这些函数都有一个通用函数。因为它很常见,而且大部分代码都在那个通用函数中。因此,为该特定函数考虑单独的 lambda 函数是合乎逻辑的。

但是当我考虑成本预期时,它让我气馁。我的意思是,调用一个 lambda 会自动调用另一个 lambda。因此,一个事件将雇用两种不同的资源。而且它似乎不符合我的成本效益。是这样吗?

一直都在做。我已经让 Lambdas 运行 确定了时间表,其中根据各种因素调用额外的 Lambdas。

但是,您必须记住常见的 "function" 正在做什么,以及这不仅会影响成本,还会影响性能。

在构建无服务器应用程序或应用程序中的无服务器组件时,有两种主要的思维方式。您可以将 AWS Lambda、Azure Functions、Google Cloud Functions 等视为真正将 "micro" 置于微服务中的 "one function" 解决方案。或者,您可以将 Lambda 用作逻辑函数组(我仍会考虑 "one function...of your app"),其中您可以在单个 Lambda 中包含多个函数。两者都是完全有效的方法,其中一种可能会减少调试时的麻烦 =)

如果您有多个 Lambda 的通用函数,您可能需要考虑在使用另一个 Lambda 之前在您的代码中处理它。我的意思是像包或库之类的东西。例如,对于 Node.js,您只需使用 NPM 导入该通用函数,这样您就可以从一个地方维护它,并根据需要简单地更新任何依赖它的东西。

尽量不要照字面意思理解 "cloud function" 并将每个函数拆分为一个新的 Lambda。

请记住,Lambda 有最低费用,因为它四舍五入到最接近的 100 毫秒。因此,如果您正在调用一些实际上运行速度非常快的通用函数……我不会将其分离到一个新的 Lambda 中。你会付出更多,但你的表现也会受到阻碍。

你的里程会像其他任何东西一样变化。云函数给了我们一个全新的思考维度。虽然它们非常方便,但如果不仔细规划,它们实际上会降低性能并增加成本。