在 AWS lambda 中部署 Spring Boot 应用程序

jin*_*ine 3 java spring-boot microservices aws-lambda

我有一个用 Javascript、Spring Boot 和 MySQL 构建的现有 Web 应用程序。我想在 AWS Lambda 中部署应用程序(前端 + 后端)。请告知如何实现这一点,因为我不确定每个restful API 调用应该如何映射到 API 网关,这将依次调用 lambda 函数(应该是来自 RestConroller 的现有 java 方法)。

感谢并感谢您的建议。

Chr*_*son 5

如果您希望部署具有多个端点的启动应用程序,Lambda 可能不是最适合您的工具。Lambda 函数具有单个入口点,API Gateway 将 URL 映射到该入口点。您需要创建多个 Lambda 函数,每个函数都有自己的 Spring Boot 应用程序(它们彼此隔离),以便创建您的 REST API 端点。

如果您希望在不需要您管理服务器的平台上运行 Spring Boot 应用程序,那么 Elastic Container Service 可能是更好的选择(或者,如果您可以走出 AWS 生态系统,可以使用 Heroku 之类的东西)。


god*_*zsa 5

我认为你不应该那样做。将 AWS Lambda 视为在触发时运行并完成其工作的一小段代码。您当然可以使用 Lambda 编写 RESTful 服务,但是您必须为每个路由定义一个 Lamda 并进行设置。

我认为您不能这样做,因为在打包您的应用程序后,jar 文件肯定会超过 Lambda 函数的大小限制。

最简单的解决方案是使用 Elastic Beanstalk。但是如果您在管理服务器方面有经验,您会发现EC2更有用。

看看这个Spring Boot 部署到 ElasticBeanstalk

教程也可能有帮助

  • 只需为未来的观众添加此信息,您可能认为 lambda 的大小限制为 10MB/12MB 或接近该值,但实际上它高达 250MB,包括您可能拥有的依赖项,所以我认为这不应该是一个问题。 (2认同)