我目前正在使用Spring Cloud Function,我想使用AWS的适配器在AWS Lambda上部署我的函数。
到目前为止,所有实现的Spring云函数都是具有以下结构的单个函数。
@SpringBootApplication
@ComponentScan(basePackages = "com.demo")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
λ的处理程序:
导入组织架构、云、函数、适配器、aws、SpringBootRequestHandler;
公共类DemoHandler扩展了SpringBootRequestHandler〈DemoRequest,DemoResponse〉{ }
我知道这部分代码已作废。
用于定义终结点的接口:
@SuppressWarnings("hiding")
@FunctionalInterface
public interface Demoapi<DemoRequest, DemoResponse>{
@PostMapping(value = "/v1/demo")
public ResponseEntity<DemoResponse> demo(@RequestBody DemoRequest demoInfo);
}
后跟定义@RestController的控制器
控制器的组成部分:
@RestController
public class Democontroller implements Demoapi<DemoRequest, DemoResponse>{
static final Logger LOGGER = LogManager.getLogger(Democontroller.class);
@Autowired
private DemoService demoService;
@Override
public ResponseEntity<DemoResponse> demo(@RequestBody DemoRequest demoInfo) {
DemoResponse demoResponse=new DemoResponse();
try {
demoResponse = demoService.demofun(demoInfo);
........
.........
.........
当部署到Lambda时,我在AWS控制台中提供了com.demo.DemoHandler作为处理程序,在FUNCTION_NAME下的环境变量中,我给予了DemoController类一个小大写字母的起始字母,即demoController,当在控制台中测试以及从API网关定向时,Lambda工作正常。
目前,我正在处理一个项目,其中要求在一个 Boot 中执行所有CRUD操作,并将其部署为单个lambda。
我想知道如何在应用程序中使用类似的结构来实现这一点。
所有的帮助是高度赞赏!
1条答案
按热度按时间5ktev3wc1#
使用此库的方法可以获得类似的结果:https://github.com/MelonProjectCom/lambda-http-router