You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBootRequestHandler已废弃,如何用Spring构建AWS Lambda并配置?

基于Spring Boot构建AWS Lambda服务的正确实现方案

问题根源

直接将DynamoDbApplication作为Lambda入口类报错,是因为Lambda运行时要求入口类必须包含符合规范的请求处理方法(如handleRequest),而你的Spring Boot启动类并不具备这个方法。SpringBootRequestHandler之所以能工作,是因为它实现了Lambda的请求处理接口,但该类已被废弃,官方推荐使用Spring Cloud Function来整合Spring Boot与AWS Lambda。

正确配置步骤

1. 添加必要依赖

确保项目引入Spring Cloud Function的AWS适配器依赖(以Maven为例):

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-function-adapter-aws</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <scope>provided</scope> <!-- Lambda不需要Web容器,排除冗余 -->
</dependency>

2. 设置Lambda入口处理程序

在AWS Lambda控制台的函数代码配置中,将处理程序字段设置为:

org.springframework.cloud.function.adapter.aws.FunctionInvoker

这个类是Spring Cloud Function提供的适配器,负责将Lambda请求转发到你定义的Function Bean。

3. 指定要调用的Function Bean

由于你定义了两个Function Bean(getLink和saveLink),需要通过环境变量指定当前Lambda要调用的Bean名称:

  • 进入Lambda控制台的配置 -> 环境变量,添加键为FUNCTION_NAME的变量,值为getLink或saveLink(根据当前Lambda的功能选择)。
  • 注意:若需同时提供两个功能,建议创建两个独立的Lambda函数,分别配置不同的FUNCTION_NAME值。

4. 打包应用

使用Spring Boot打包插件生成包含所有依赖的可执行JAR包:

mvn clean package spring-boot:repackage

将生成的JAR包上传到Lambda即可。

代码验证

你的DynamoDbApplication代码结构符合Spring Cloud Function的规范,通过@Bean定义的Function会被自动识别,只要上述配置正确,就能正常处理Lambda请求。

内容的提问来源于stack exchange,提问作者hhrzc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:55:27