AWS lambda的内部调用如何影响成本计算?

问题描述 投票:0回答:2

我正在做一个以PaaS形式提供服务的产品,产品的后端完全是使用NodeJS Serverless Framework为serverless开发的,部署在AWS Lambda上。

当我开始工作的时候,发现有很多重复的代码,LambdaFunctionOne和LambdaFunctionTwo都有相同的函数,执行相同的操作,这就是问题所在,如果我们要改变函数的逻辑,那么我们就必须改变所有Lambda函数中的函数。

想要去除重复的,所以如果LambdaFunctionTwo需要的某个函数是LambdaFunctionOne,那么与其复制,不如调用LambdaFunctionOne并调用其函数。假设为 utils 创建了一个 lambda 函数,并且通过调用 lambda 而不是复制,在 Lambda 的每个函数中使用该 utils。

  1. 它将如何影响定价?
  2. 在成本方面,从另一个lambda调用lambda是好的做法吗?
  3. 在无服务器环境下开发这样的产品是好的做法吗?
amazon-web-services aws-lambda serverless-framework aws-serverless serverless-architecture
2个回答
2
投票

它将如何影响定价?

你要为lambda函数的执行成本付费。因此,如果你的lambda函数调用另一个函数,你将被 两刑并罚. 不幸的是,这样的用例没有特别的折扣。

在成本方面,从另一个lambda调用lambda是好的做法吗?

基本上和第一个问题一样。每次执行都要付费。

在无服务器环境下开发这样的产品是好的做法吗?

一般来说,你 不应该紧紧地把功能耦合在一起 像这样。在理想的情况下,所有的功能都会独立工作,并且会使用Step Functions进行同步,或者通过分布式消息系统(如SQS)进行通信。

我可以推荐AWS关于使用lambda的最佳实践的白皮书。

我发现有很多重复的代码,LambdaFunctionOne和LambdaFunctionTwo都有相同的功能,执行相同的操作。

这似乎是lambda的一个很好的应用案例。层次. 你可以把所有 层中通用代码 由所有函数共享。


2
投票

调用一个单独的函数的缺点是,你要为两个同时存在的函数付费(正在等待的调用函数和被调用函数)。最好是在一个函数中就可以访问代码。

一个例外的情况是,如果你正在设计微服务,其中每个微服务 "拥有 "一个进程或一些特定的数据。在这种情况下,最好通过定义的API调用另一个服务,而不暴露函数的内部细节。


0
投票

和外部调用一样。看看CloudWatch的日志,还是以100ms为增量的。

© www.soinside.com 2019 - 2024. All rights reserved.