Fel*_*ano 3 amazon-web-services aws-lambda aws-api-gateway
我正在尝试使用Api Gateway部署API套件,并使用lambda在Java中实现代码。在一个jar中有很多(当然是相关的)lambda是可以的(我想做什么)还是最好为要部署的每个lambda创建一个jar。(这很容易变成一团糟)
这实际上是一个品味问题,但是您需要考虑一些事项。
首先,单个Lambda上传的大小有限制(在撰写本文时为50MB)。
其次,您上传的所有所有代码的总大小也有限制(目前为1.5GB)。这些限制对于您的用例而言可能不是问题,但请务必注意。
您必须考虑的下一件事情是您想要的开销。假设您将CRUD接口部署到单个Lambda,并从API Gateway传递了“ action”参数,以便您知道执行Lambda函数时要执行的操作。这将增加执行的开销,因为您必须将操作路由到适当的操作。这可能是一种非常快速的路由,但是尽管如此,它仍将CPU周期添加到函数执行中。
另一方面,将同一个jar部署到多个Lambda函数上将使您迅速接近我之前提到的限制,并且随着数量的增长,这还会增加管理Lambda函数的管理开销。它们当然可以通过CloudFormation或cli脚本进行管理,但仍会增加管理开销。
我不会说这样做有对与错。查看您要执行的操作,考虑管理部署并从那里进行部署所需的内容。如果弄错了,您总是可以从另一种方法重新开始。
就我个人而言,我喜欢非常小的服务Lambda,它执行内部路由并处理的不仅仅是一个操作,但它们仍然很小,并且专注于特定类型的任务,无论是数据库表的CRUD还是管理选定的几个紧密相关的任务操作。
serverless.com 上有一些不错的建议
正如聚乙烯所说,答案是“视情况而定”。但他们列出了 4 种处理方式的利弊:
https://serverless.com/blog/serverless-architecture-code-patterns/
| 归档时间: |
|
| 查看次数: |
1210 次 |
| 最近记录: |