DynamoDB에 레코드를 추가하는 간단한 람다 함수를 하나 만들고, API Gateway를 통해 이를 호출하는 예제를 직접 실행해봅니다.
람다 함수의 역할은 다음과 같습니다.
Lambdb 배포 Instruction
먼저 lambda 함수와 API Gateway 셋팅을 한꺼번에 할 수 있게 SAM을 이용한다
https://serverlessland.com/patterns/lambda-dynamodb
현재 람다가 런타임 nodejs 14.x을 지원하므로 template.yaml 파일에서 Runtime 부분을 바꾼다.
sam build
를 하고 sam deploy --guided
를 통해 배포를 한다.
롤백을 할 수 있도록 disable_rollback은 false를 선택한다.
람다에 invoke 명령을 통해 작동을 확인한다.
aws lambda invoke --function-name <Lambda함수Arn> --invocation-type Event \
--payload '{ "Metadata": "Hello" }' \ response.json --cli-binary-format raw-in-base64-out
Lambda 트리거에 API 게이트웨이 연결
API 게이트웨이에 제한 추가하기
POST 전용으로 메소드를 제한 한다.
메서드 생성을 누르고 POST를 선택한다.
메서드 요청에서 API 키가 필요함을 true로 변경한다.
API 키에서 생성을하고 사용량 계획을 생성한다.
권한 부여 승인용 리소스와 메서드를 생성한다.
권한 부여자를 공식 문서를 참조하여 생성한다.
메서드 요청에서 승인에 권한 부여자를 선택한다.
POSTMAN을 이용하여 API Gateway Endpoint로 API Key와 권한부여자를 각각 POST 요청 보낸다.
권한부여자를 사용하여 다른 플랫폼의 아이디 로그인을 통해 권한을 사용하여 요청하는 방식으로 구성할 수 있다.