DynamoDB + Lambda + API Gateway 예제

Nari.·2020년 7월 1일
1

AWS

목록 보기
4/13

이전포스팅 에 이어지는 글입니다.

오늘은 API Gateway를 Lambda에 붙이는 작업을 할 것입니다.
REST API 방식을 이용할 것입니다.


REST API 생성

API Gateway 대시보드에 들어가서 우측상단 "API생성" 버튼을 눌러 API생성을 시작합니다.


REST API 구축

앞서 이야기 드렸듯이 우리는 REST API 로 구축할 것이기 때문에 REST API 구축을 시작합니다.


REST API이므로 프로토콜은 REST
새로운 API 생성, 이름을 설정해줍니다.


리소스 생성

아래와 같은 화면이 뜨면, 새로운 REST API를 생성한 것입니다.
가장 먼저 할 일은 "리소스 생성" 입니다.


저는 리소스 이름을 entries 라고 했습니다. 리소스 이름을 입력하시면 바로 아래 리소스 경로는 자연스럽게 바뀔 것입니다.
API Gateway CORS 활성화를 꼭 체크 해주시고 생성을 하면 됩니다.


메서드 생성

리소스를 만들었다면, 리소스를 누른 후 작업 -> 메서드 생성을 해줍니다.
위에서 만든 리소스에서 메서드를 만들어 주어야 합니다.


PutItem 의 경우 POST방식으로 전달할 것입니다.
(뒤에서 할 ReadItem은 GET방식으로 전달할 예정입니다.)


이전포스팅 에서 만든 Lambda 함수를 붙여줍니다.


권한 추가에 있어서 API Gateway가 Lambda를 호출하기 위한 권한이 필요하니 "확인"을 눌러준다.


통합 요청 설정하기

entries -> POST -> 통합 요청 에 들어가서,


페이지 제일 하단에 "매핑 템플릿" 에서 설정을 해준다.


회색으로 희미하게 쓰여있는 Content-Type 을 똑같이 쓰고 옆에 체크 화살표를 눌러서 확인 표시를 한다.


무작위로 아무거나 넘겨주는 것이 아닌, 아래에 우리가 지정한 형식으로만 넘겨질때 허용하겠다는 의미이다. 이것또한 "예, 이 통합 보호" 를 클릭하고 밑으로 스크롤을 내려보면,


숨겨졌던 창이 텍스트 상자가 하나 생성되어 있는 것을 볼 수 있다. 여기에 어떻게 넘겨줄 것인지, 사용자의 입력을 api gateway에서 받아서 lambda 에게 넘겨줄 형식을 지정해준다.
** 지정하는 형식은 사진 하단에 코드로 첨부해 두겠습니다.

{
  "name":$input.json('$.name'),
  "email":$input.json('$.email'),
  "phone":$input.json('$.phone')
}

CORS 활성화

이렇게 지정을 마친 뒤,
리소스 이름을 눌러서 "CORS 활성화" 를 시켜준다.
*CORS(Cross-Origin Resource Sharing) 활성화


다른 것을 건드리지 않고, default 기본 값으로 "CORS 활성화 및 기존의 CORS 헤더 대체" 버튼을 눌러서 활성화를 시켜준다.


메서드 변경 사항을 확인하라고 하는데, 따로 설정한 것은 없기에 "예, 기존 값을 대체하겠습니다." 를 눌러줍니다.


그러면 aws가 자동으로 CORS 활성화를 시켜주는데, 4개의 항목에 체크 표시를 확인하면 끝이 납니다.
여기까지하면 거의 끝! 이제 한 단계가 남았습니다.


Deploy API / API 배포

마지막 단계는 지금까지 설정해준 API 를 배포시키는 것입니다.



배포가 처음이니 우리는 새 스테이지 를 만들어서 배포할 것입니다.


스테이지 이름은 중요하지 않아서 각자 원하는 이름으로 하면됩니다.
저는 dev 라고 이름을 지었습니다.


dev -> entries 를 누르면 파란색 네모의 URL호출 이 뜹니다. 가장 중요하기에 복사를 해두고, 언제든 배포를 누르면 생성되는 것이라서 혹시나 필요할때면, 위의 API배포 단계를 다시 실행하시면 됩니다.


여기까지 Lambda - API Gateway 연결 및 API 배포하기 실습이었습니다.

p.s. AWS를 공부하며 기록으로 남기고 있습니다. 오탈자 혹은 잘못된 정보가 있다면 댓글로 남겨주세요.

1개의 댓글