AWS lambda 的内部调用如何影响成本核算?
How does internal invocation of AWS lambda affect costing?
致力于作为 PaaS 服务的产品,产品后端完全使用 NodeJS 无服务器框架为无服务器开发,并部署在 AWS Lambda 上。
当我开始研究它时,我发现有很多重复的代码,LambdaFunctionOne 和 LambdaFunctionTwo 都有相同的函数执行相同的操作,这就是问题所在,如果我们必须更改函数的逻辑,那么我们将有更改所有 lambda 函数中的函数。
想要删除重复项,因此如果 LambdaFunctionTwo 需要某个函数,即 LambdaFunctionOne,那么应该调用 LambdaFunctionOne 并调用其函数,而不是复制。假设为 utils 创建了一个 lambda 函数,并通过调用 lambda 而不是复制在 Lambda 的每个函数中使用该 utils。
- 它将如何影响定价?
- 就成本而言,从另一个 lambda 调用 lambda 是好的做法吗?
- 在无服务器中开发这样的产品是好的做法吗?
调用单独函数的缺点是您要为两个同时发生的函数付费(正在等待的调用函数和被调用函数)。最好能在一个函数中访问代码。
一个例外情况是,如果您正在设计微服务,其中每个微服务 'owns' 一个进程或一些特定数据。在这种情况下,最好通过定义的 API 调用另一个服务而不暴露函数的内部细节。
How does it will affect the pricing?
您支付 lambda 函数执行费用。因此,如果您的 lambda 函数调用另一个函数,您将为两次执行付费。不幸的是,此类用例没有特别折扣。
Is it good practice to call the lambda from another lambda in terms of cost?
和第一个基本相同的问题。您为每次执行付费。
Is it good practice to develop such product in serverless?
通常,您不应该像这样紧密耦合函数。在理想情况下,所有功能都将独立工作,并使用 Step Functions 进行同步,and/or 通过分布式消息系统(例如 SQS)进行通信。
我可以推荐关于使用 lambda 的最佳实践的 AWS 白皮书:
I found there are lots of duplicate code, LambdaFunctionOne and LambdaFunctionTwo both have same function performing same operation,
这似乎是 lambda layers 的一个很好的用例。您可以将所有 公共代码放在所有功能共享的层 中。
与外部调用相同。查看 CloudWatch 日志,它仍然以 100 毫秒为增量。
致力于作为 PaaS 服务的产品,产品后端完全使用 NodeJS 无服务器框架为无服务器开发,并部署在 AWS Lambda 上。
当我开始研究它时,我发现有很多重复的代码,LambdaFunctionOne 和 LambdaFunctionTwo 都有相同的函数执行相同的操作,这就是问题所在,如果我们必须更改函数的逻辑,那么我们将有更改所有 lambda 函数中的函数。
想要删除重复项,因此如果 LambdaFunctionTwo 需要某个函数,即 LambdaFunctionOne,那么应该调用 LambdaFunctionOne 并调用其函数,而不是复制。假设为 utils 创建了一个 lambda 函数,并通过调用 lambda 而不是复制在 Lambda 的每个函数中使用该 utils。
- 它将如何影响定价?
- 就成本而言,从另一个 lambda 调用 lambda 是好的做法吗?
- 在无服务器中开发这样的产品是好的做法吗?
调用单独函数的缺点是您要为两个同时发生的函数付费(正在等待的调用函数和被调用函数)。最好能在一个函数中访问代码。
一个例外情况是,如果您正在设计微服务,其中每个微服务 'owns' 一个进程或一些特定数据。在这种情况下,最好通过定义的 API 调用另一个服务而不暴露函数的内部细节。
How does it will affect the pricing?
您支付 lambda 函数执行费用。因此,如果您的 lambda 函数调用另一个函数,您将为两次执行付费。不幸的是,此类用例没有特别折扣。
Is it good practice to call the lambda from another lambda in terms of cost?
和第一个基本相同的问题。您为每次执行付费。
Is it good practice to develop such product in serverless?
通常,您不应该像这样紧密耦合函数。在理想情况下,所有功能都将独立工作,并使用 Step Functions 进行同步,and/or 通过分布式消息系统(例如 SQS)进行通信。
我可以推荐关于使用 lambda 的最佳实践的 AWS 白皮书:
I found there are lots of duplicate code, LambdaFunctionOne and LambdaFunctionTwo both have same function performing same operation,
这似乎是 lambda layers 的一个很好的用例。您可以将所有 公共代码放在所有功能共享的层 中。
与外部调用相同。查看 CloudWatch 日志,它仍然以 100 毫秒为增量。