gpt4 book ai didi

amazon-web-services - 如何将 Spring Boot 微服务应用程序(RESTful)作为无服务器部署到 AWS Lambda?

转载 作者:行者123 更新时间:2023-12-05 02:13:05 31 4
gpt4 key购买 nike

我使用 Java 8 和 Spring Boot2.0 开发了一个简单的基于 REST 的微服务。它有自己的 REST 端点,我可以使用 Postman 调用它,我得到了很好的响应。如果我想在 AWS 云上部署相同的应用程序,现在我对理解设计和架构有疑问。我希望我的应用程序表现得像无服务器,所以我想使用它的 Lambda 服务在 AWS 上部署。

请帮我解决以下疑惑:-1) 首先,我能否将我的整个应用程序代码上传到 AWS Lambda 以使其成为无服务器的?

2) 如果是,那么当请求通过它时,我是否需要(强制)使用 AWS API Gateway 来调用我的 Lambda 函数?

3) 如果是(第 2 点),那么我原来的微服务代码中的端点将变得无效,并将被新的 API 网关端点覆盖?

我的全部疑问是端点,哪个端点将用于调用 Lambda 函数?

请协助澄清我的疑问。如果有任何示例引用资料,那将是非常棒的。

干杯

最佳答案

在我看来,Spring Boot 和 AWS Lambda 并不自然地结合在一起。

Lambda 是纯代码,它不会将自己呈现为 HTTP 服务器,它只是由其他 AWS 服务之一(API 网关、CloudWatch、S3、DynamoDB、Kinesis、SDK 等)触发。处理程序从调用服务接收 JSON 请求,并处理该请求。 Here is an example.

API 网关可以完成 Spring Boot 为您提供的大部分功能。 API Gateway 始终在线等待 HTTP 请求进来,为此您只需为传入请求付费,您无需为闲置付费(无服务器 IMO 的定义)。

一旦收到请求,API Gateway 会将请求有效负载与一些额外的环境数据包装在一起,并将其发送到您的 Lambda 处理程序,后者处理请求并向客户端返回一些响应。

话虽如此,如果您不想重组您的服务,有几个选项可供您选择:

  1. 包装成 Docker 镜像并使用 AWS 容器服务,使用 ECSElasticBeanstalk ,这些都不被认为是无服务器的。

  2. 我没有尝试过,但是根据 AWS:

You can use the aws-serverless-java-container library to run a Spring Boot application in AWS Lambda. You can use the library within your Lambda handler to load your Spring Boot application and proxy events to it.

参见 Convert your SpringBoot project 的链接和 Deploy it to AWS Lambda .

希望这对您有所帮助。

关于amazon-web-services - 如何将 Spring Boot 微服务应用程序(RESTful)作为无服务器部署到 AWS Lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55140683/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com