如何组织 Java Lambda Handler 项目

How to organize a Java Lambda Handler project

我最近开始使用 Java 在 AWS Lambda 上工作,我需要了解如何正确构建这样的项目。

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

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

我已经避免使用 Spring Boot 和 Spring 来实现更快的冷启动、更少的依赖和更小的内存占用,但是 .jar 大小已经是 20 MB。

我是否遵循正常模式,或者如何改进我的项目结构(见图)?

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

我也想问一下,将它们放在一起是好的设计还是我应该为每个 lambda 设置不同的 projects/modules。例如:deleteUser、disableUser 等

请引导我开始。

谢谢

所有 Lambda 函数的一个项目应该没问题,因为最后需要将 Lambda 函数配置到其各自的处理程序。检查这个类似的 Whosebug 线程。

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

像 spring-boot 这样的框架往往会导致启动时间更长 times.Other 您可以考虑的替代方案。

  1. 如果你的应用程序逻辑足够简单,避免使用任何框架,只使用核心 java.

  2. Spring Cloud Function- 您可以将其视为用于开发 serverles 应用程序的 spring 引导版本(当然有还有很多)

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

  3. 试试 Quarks 因为他们声称内存占用和应用程序启动时间要少得多。

    https://quarkus.io/