【问题标题】:How to organize a Java Lambda Handler project如何组织一个 Java Lambda Handler 项目
【发布时间】:2020-06-26 14:18:43
【问题描述】:

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

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

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

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

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

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

我还想问,将它们放在一起是否是好的设计,或者我是否应该为每个 lambda 提供不同的项目/模块。例如:deleteUser、disableUser 等。

请引导我开始。

谢谢

【问题讨论】:

    标签: java aws-lambda aws-serverless project-structure


    【解决方案1】:

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

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

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

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

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

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

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

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

      https://quarkus.io/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      相关资源
      最近更新 更多