如何组织Java Lambda Handler项目

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

我最近开始使用Java来研究AWS Lambda,我需要了解如何正确构建这样的项目。

应该只为所有lambda函数创建一个项目,还是应该为每个lambda函数创建一个项目?

我目前正在跟踪前者,并且在一个项目中创建了10个lambda函数。

我避免使用Spring Boot和Spring来加快启动速度,减少依赖关系并减小内存占用,但是.jar的大小已经是20 MB。

我遵循正常模式,还是如何改善项目结构(见图)?

enter image description here

说明:我将所有处理程序放在一个项目中,当然,AWS将指向每个函数的不同处理程序。

我也想问一下,将它们放在一起是一种好的设计,还是每个lambda都有不同的项目/模块。例如:deleteUser,disableUser等。

请引导我开始。

enter image description here

谢谢

java aws-lambda aws-serverless project-structure
1个回答
1
投票

所有Lambda函数的一个项目应该都很好,因为最后需要将Lambda函数配置为其各自的Handler。检查此类似的stackoverflow线程。

Is it feasible to create multiple Lambda functions (Java) in a jar

对于应用程序内存占用空间,请尝试部署Lambda应用程序并检查冷启动时间和内存占用空间,因为这2会在一定程度上确定您的Lambda成本。

诸如spring-boot之类的框架往往会导致更长的启动时间。您可以考虑使用其他替代方法。

  1. 如果您的应用程序逻辑足够简单,请避免使用任何框架,而应使用核心Java。

  2. [Spring Cloud Function-您可以将其视为用于开发服务器应用程序的Spring Boot版本(当然,它还有很多其他功能)

    https://spring.io/projects/spring-cloud-function

  3. 尝试Quarks,因为它们声称具有更少的内存占用空间和应用程序启动时间。

    https://quarkus.io/

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