[AWS] Lambda와 API Gateway를 연결하여 쿼리 실행

Lee InnJie·2022년 8월 8일

AWS Lambda

목록 보기
3/3

Lambda와 DynamoDB연동

변경사항

개발자 페이지

1. API Gateway 설정 변경

gateway - [리소스에서 통합 요청] 클릭


매핑 템플릿 선택 후 패스 스루에서 Content-Typeapplication/json으로 선택

이어서 나오는 템플릿에서 이전 lambda에서 작성해준 테스트 이벤트를 약간 변형하여 작성한다.
변경한 부분은 파라미터로 넘겨줄 ExpressionAttributeValues 이다.
( 프로젝트에 따라 다르지만 나는 이부분만 파라미터로 이용한다.)

{
  "operation": "operation",
  "type": "GET",
  "body": {
    "TableName": "Confusion",
    "FilterExpression": "contains (#names, :atValue)",
    "ExpressionAttributeNames": {
      "#names": "confusion_name"
    },
    "ExpressionAttributeValues": {
      ":atValue": {
        "S": "$input.params('atValue')"
      }
    }
  }
}

원래는 "S": "s" 였지만 s의 값을 바꿔서 전달하기 위해 이 부분을 정규식에 해당하는 input.params('atValue')로 변경해주었다.
작성 완료 후 저장을 누르고 작업 - API 배포를 눌러 gateway 설정을 스테이지로 배포한다.
설정을 완료했다면 cmd를 실행하고 해당 메소드의 url에 파라미터를 포함하여 실행하도록 한다.

curl -X GET "[메소드명 포함 url]?atValue:s

현재 DB에는 snack이라는 데이터가 저장되어있고, 이를 결과로 보기위해 s와 z를 파라미터로 넘겨 테스트를 한 결과이다.
s를 파라미터로 넘겨주었을때는 snack이 결과로 반환되었다.
z를 파라미터로 넘겨주었을때는 snack이 결과로 반환되지 않았다.

profile
⌒_⌒

0개의 댓글