AWS lambda(with API gateway)
Lambda
- 함수 생성
- 생성시 실행 역할 설정이 중요
- 요번에 만든 함수는 S3 버킷 내부의 파일들을 읽는 것임으로 IAM에서 S3 read에 관한 권한만 준다.
- Lambda Test 필수
- 함수 생성 후 중요한 것 두가지
트리거 추가
- API Gateway이다. Lambda에 대한 요청들을 걸러주는(?) 곳이다.
- 생성할 때 REST API로 생성해 주었다.
- 생성 후에 API 리소스에 들어간 후 메소드를 수정해준다. (ex. 쿼리 파라미터, 요청 본문 (body)
- 리소스
- 작업에서 CORS에 대한 설정을 해준다.
- 중요. TEST를 한 후 API 배포를 해주어야 POSTMAN 등 외부에서 사용이 가능하다.
Layers 설정
- 계층 설정으로 nodeJS 패키지 등 모듈들을 저장해 두는 곳이다.
- 호환 런타임이 설정 사항이라 되어 있지만 입력하지 않을시 추가 할 때 보이지 않음. 꼭 넣어주자.
- 파일을 .zip 형태 혹은 S3에서 다이렉트로 가져오는 두가지 방법이 있다.
- .zip파일로 넣을 때 node_modules 파일만 압축해서 넣으면 인식이 되지않는다.
- 꼭 nodejs/node_modules 의 형태로 넣어야된다.
작성시 주의 사항
- 지속적으로 처음 요청을 보냈을 때 ERROR가 발생 ( error code : PermanentRedirect )
- 원인을 찾아보니 S3에 접근할 때 리전이 서로 달라서 생기는 현상 ( lambda는 오레곤, s3는 오하이오 였음) 수정하니 에러 발생 X