REST API Gateway에서 Lambda를 호출하여 request의 body부분을 validation하는 환경이다.
Dynamo DB와 같은 엔진을 사용할때 적용하면 도움이 많이 되는 환경이다.
우선 REST API Gateway를 생성해야 한다.
해당 화면에서 Create API를 클릭하여 API Gateway를 생성한다.
가장 하단의 Private REST API 말고 그 위에 있는 REST API를 선택하여 생성한다.
다른 설정은 없이 생성을 완료한다.
다음으로는 REST API Gateway의 엔드포인트를 생성한다.
Actions 버튼을 클릭하여 Create Resource를 클릭한다.
Resource는 위와 같이 이름을 정하고 그 이름을 기반으로 경로가 생성된다.
추가로 CORS까지 허용해준다.
생성된 Resource에서 Method를 생성한다.
Method는 POST로 설정하고 Integration은 Lambda이고 이전에 만들었던 Lambda를 선택하여 저장한다.
그러면 AWS에서 해당 Lambda와 관련된 권한을 추가하라는 경고가 뜬다.
우선 OK를 눌러서 다음으로 넘어간다.
REST가 거의 준비됐다.
다음으로는 Validation을 적용해보자.
Model로 이동후 Create 버튼을 클릭하여 Model을 생성한다.
Model schema에 Json Schema를 작성하면 된다.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title" : "Bird Schema",
"type" : "object",
"properties": {
"id": {
"description": "Unique identifier for a bird",
"type": "string",
"minLength": 1
},
"name": {
"description": "The name of a bird",
"type": "string",
"minLength": 1
},
"canFly": {
"description": "A boolean that descrips if a bird can fly",
"type": "boolean"
},
"colors": {
"description": "An array of colors",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"imageUrl": {
"description": "The url for images of this bird",
"type": "string",
"minLength": 1
}
},
"required": [
"id",
"name"
]
}
다음으로 다시 Resources로 돌아가서
앞서 생성한 Method를 클릭하고 Method Request로 이동한다.
Request Validator에서 Validate body를 클릭하고 우측에 체크를 클릭한다.
다음으로 Request Body에서 앞서 생성한 Model을 선택한다.
모두 설정이 완료 되었으면 Actions버튼을 클릭해서
하단에 있는 Deploy API를 클릭하여 배포를 한다.
Stage는 test를 입력해서 배포를 진행한다.
배포가 완료된 REST API이다.
이제 Test를 진행해야 하는데 우리는 PostMan을 사용한다.
우선 ID 없이 요청을 보내면
body가 잘못 되었다는 오류가 리턴되는것을 알수 있다.
올바른 형태로 요청을하면
위와 같이 정상 처리 되는것을 확인할수 있다.
출처 :
https://www.youtube.com/watch?v=J-nO0lgj3iw
'[AWS] > Lambda' 카테고리의 다른 글
[AWS] REST API Gateway와 Cognito & Lambda 연동 (0) | 2022.11.14 |
---|---|
[AWS] Lambda와 API Gateway 연동 (0) | 2022.10.12 |
[AWS] S3에서 Lambda를 트리거 및 DynamoDB 테이블로 적재 -1 (0) | 2022.10.12 |
댓글