spring framework
SPRINGBOOT로 AWS LAMBDA 이용하기
dev.bistro
2017. 7. 7. 09:52
결론적으로 @SpringBootApplication 과 Main method으로 시작되는 startup은 불가능하지만, 그 부분을 생성자 부분으로 변경한 다면 사용 가능하다. 다만, 첫 시작은 dependency lookup 방식으로 bean을 가져와야 한다.
(이건 올해 초 얘기고, 지금은 https://github.com/spring-cloud/spring-cloud-function 을 이용하면 된다)
테스트환경
- intellij 2016.3
- gradle
- spring-boot 1.4.3
intellij Spring Initializr 의 셋팅
이후 build.gradle은 다음과 같이 셋팅하였다. boot를 이용한 gradle의 task package 나 assemble는 main이 없기때문에 사용이 힘들고 maven shade 플러그인이나 gradle shadow를 이용한다.
참고 build.gradle
( plugin : https://github.com/johnrengelman/shadow 는 몇년전에 PR 1줄 했네…)
이후 https://github.com/bistros/test-springboot-lambda 으로 프로젝트를 구동 시켜봤지만 단순히 String을 리턴하는데도 2초씩 걸린다. (handleRequest에서 스프링 프로젝트를 초기화 하니 당연히 느릴수밖에… source link )
그래서 다음처럼 생성자에서 초기화하도록 수정 (source link) 하였다.