我有一个Java Spring Boot应用程序,该应用程序在轮询来自SQS的消息后运行作业以将数据上传到数据库,并且该应用程序还包含同一数据库上的REST API。
现在我需要取消上传功能和REST API的耦合。
上传功能将由AWS批处理作业完成,而该批处理作业将由lambda触发。Rest API将像以前一样简单。
挑战是,我需要在同一代码存储库中执行所有这些操作。这是为了避免有3个存储库,一个用于REST API,另一个用于AWS Batch Job,最后一个用于AWS lambda处理程序。
因此试图找出Spring Boot可以提供的解决方案,以不同的模式运行同一应用程序。请帮助。
我不建议将Spring Boot用于lambda-从技术上讲,您可以,但这是浪费金钱。 Spring Boot是Java的开销,它需要更多的内存,因此更昂贵。
您需要创建一个多模块Maven应用程序。这些模块将是:
但是如果您仍然出于某种原因仍然希望将现有的Spring Boot应用程序包装到lambda中,则该库将为您提供帮助:
https://github.com/awslabs/aws-serverless-java-container/wiki/Quick-start---Spring-Boot