AWS - API Gateway for Lambda
API Gateway와 서버리스 애플리케이션
DynamoDB에 레코드를 추가하는 간단한 람다 함수를 하나 만들고, API Gateway를 통해 이를 호출하는 예제를 직접 실행해봅니다.
람다 함수의 역할은 다음과 같습니다.
- 함수에 JSON 형식의 payload를 싣고 실행하면 DynamoDB에 해당 payload가 저장
요구 사항
- API Gateway로 POST요청을 보내면 Lambda 함수를 통해 DynamoDB에 요청받은 Body를 테이블에 삽입합니다.
- API Gateway의 인증 기능을 이용하여, HTTP 요청에 API Key와 권한 부여자를 사용하는 두 가지 방법으로 구현합니다.
- CloudWatch Logs를 통해서 API 호출을 모니터링할 수 있습니다.
Getting Started
Step 1
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
- 202 status가 도착하고, DynamoDB의 테이블에 값이 저장되어 있으면 성공.
Step 2
Lambda 트리거에 API 게이트웨이 연결
- 람다 함수에서 방금 생성한 함수를 선택하여 들어간다.
- 트리거 추가에서 API Gateway를 선택한다.
- API 생성을 선택하여 REST API를 생성하고 보안은 열기 구성하고 추가버튼을 누른다.
- 이제 API Endpoint를 통하여 HTTP 요청을 보낼 수 있다.
Step 3
API 게이트웨이에 제한 추가하기
-
POST 전용으로 메소드를 제한 한다.
-
메서드 생성을 누르고 POST를 선택한다.
-
메서드 요청에서 API 키가 필요함을 true로 변경한다.
-
API 키에서 생성을하고 사용량 계획을 생성한다.
-
권한 부여 승인용 리소스와 메서드를 생성한다.
-
권한 부여자를 공식 문서를 참조하여 생성한다.
-
메서드 요청에서 승인에 권한 부여자를 선택한다.
Test
POSTMAN을 이용하여 API Gateway Endpoint로 API Key와 권한부여자를 각각 POST 요청 보낸다.
- API Key
- Authorization
Authorization
권한부여자를 사용하여 다른 플랫폼의 아이디 로그인을 통해 권한을 사용하여 요청하는 방식으로 구성할 수 있다.
Author And Source
이 문제에 관하여(AWS - API Gateway for Lambda), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jm1225/AWS-API-Gateway-for-Lambda저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)