AWS Lambda - API Gateway로 S3 파일 업로드 API 만들기 #1 - Lambda 함수 생성
안녕하세요. 남산돈가스입니다. 이번 포스팅에서는 웹을 개발하면서 가장 골칫거리지만 자주 쓰이게 될 수 있는 파일 업로드 기능 구현에 대해서 포스팅하려고합니다. 하지만 일반적인 파일업로드가 아닌, Lambda로 S3에 파일을 업로드 시키는 함수를 생성하고, 해당 Lambda함수를 API Gateway에 연결하여 multipart-form 형식으로 파일을 업로드하는 Serverless 파일업로드를 구현할 예정입니다. 이런 방식으로 업로드기능을 구현하게 되면, 추후에 어디든지 파일업로드 기능을 쓸 수 있는 Micro Service가 될 수 있습니다. 포스팅은 다음과 같이 3회에 걸쳐 진행되겠습니다. #1. Lambda 함수 생성 #2. API Gateway, S3 셋팅 #3. API Gateway - Lambda 연결 및 테스트 그렇다면 지금부터 그 첫번째 단계인 Lambda 함수 생성을 진행해보겠습니다. 먼저 Lambda 서비스에 접속한 뒤 Node.js 기반의 새로운 함수를 생성합니다. 함수를 생성하면 아래와 같이 트리거가 추가되지 않은 날것의 함수가 생성된 것을 확인하실 수 있습니다. 쥐도 새도 모르게 변하는 AWS 콘솔 덕분에(?) 매번 포스팅할 때마다 Lambdad의 콘솔화면이 다채롭게 변하고있네요...ㅎㅎ 기존의 포스팅에서는 위 사진처럼 인라인으로 편집하는 포스팅만 진행했었는데 금번 포스팅에서는 외부 node_module을 사용하는 경우라 로컬에서 작업한 소스를 ZIP파일 형식으로 업로드하여 함수를 생성해보겠습니다. 로컬 터미널에서 upload라는 폴더를 생성하고 index.js을 생성합니다. index.js 그리고 해당 함수에 필요한 node_module을 install 하기 위해서 npm install 명령어를 사용합니다. 필요 모듈 aws-sdk : AWS javascript sdk 모듈 parse-multipart : multipart형식으로