GET을 활용한 API 게이트웨이 실습

김정동·2021년 2월 17일
0

실습

목록 보기
12/19
post-thumbnail

실습요약

  • API 게이트웨이용 람다 함수 생성
  • API 게이트웨이용 람다 이벤트 구성
  • 람다 함수 소스코드 작성
  • 다이나모 DB서비스 실행 권한을 위한 IAM 정책 설정
  • 다이나모 DB 생성
  • 람다 함수 수정
  • API 게이트웨이 테스트 및 다이나모 DB GET 확인

AWS 콘솔 - Lambda - 함수 생성


이름과 런타임을 지정한다.


역할은 aws 정책 템플릿에서 Lambda@edge 권한을 선택하기 때문에 따로 만들지 않아도 고를 수 있다. 이후 함수 생성☑


생성된 함수와 코드를 볼 수 있다.

여기서 api 게이트웨이를 추가해보자.


보안 - 열기 - 생성을 누른다


API 게이트웨이가 만들어진 것을 확인할 수 있다.


엔드포인트도 확인할 수 있다.


이후 함수코드에서 Hello~ 부분을 event.queryStringParameters로 바꾼다.

엔드포인트 뒤에 get데이터를 전달해서 표시할 수 있다.
주소창 끝에 ?text=hello 추가
GET데이터는 Key=Value 형태로 데이터를 전달한다.

이제 데이터를 받아 다이나모DB에 저장해보자.


IAM - 역할 - 정책 연결 - 정책 생성


dynamoDB를 검색하고 모든 작업,
리소스에도 모든 리소스를 선택한다.


검토화면에서 이름과 설명을 넣고 모든 엑세스와 리소스가 설정된 것을 볼 수 있다.
CRUD는 Create(생성), Read(읽기), Update(변경), Delete(삭제)를 의미한다

생성 완료, 역할과 정책을 연결한다


연결된 것을 확인할 수 있다.


Dynamo db를 만들자


이름과 파티션 키에 id를 입력하고 생성한다.


아직 항목에 아무것도 없는 것을 확인할 수 있다.


람다 함수를 수정한다

//aws-sdk를 불러옵니다.
const AWS = require('aws-sdk')
//다이나모디비 클라이언트를 초기화합니다.
const dynamodb = new AWS.DynamoDB.DocumentClient()


exports.handler = async (event) => {

    //리턴할 값을 선언합니다.
    let response

    //queryStringParameters즉 GET값들이 들어오는지 들어온다면 id가 있는지 체크합니다.
    if (!event.queryStringParameters || !event.queryStringParameters.id) {
        response = {
            statusCode: 400,
            body: JSON.stringify("id가 없습니다."),
        }
        return response
    } else {
        let params = {
            Item:{
                id:event.queryStringParameters.id,
                data: event.queryStringParameters
            },
            TableName: "dynamo_apigateway_query",
        }
        await dynamodb.put(params).promise().catch(e => {
            response = {
                statusCode: 500,
                body: JSON.stringify("에러가 발생하였습니다:" + e),
            }
            return response
        })

        response = {
            statusCode: 200,
            body: JSON.stringify("데이터가 성공적으로 저장되었습니다.."),
        }
        return response

    }
}

그림의 소스코드는 'queryStringParameter를 인자로 받아 다이나모 db에 저장하고 get 데이터나 id값이 없다면 400, 저장하는데 문제가 있다면 500, 성공적으로 데이터를 넣었다면 200코드를 반환하는 소스코드이다.
작성 후 deploy!


API게이트웨이의 URL로 들어가면 ID가 없습니다라는 텍스트를 볼 수 있다.

URI끝에 ?id=72 와 같은 데이터를 추가해보면??

데이터가 성공적으로 저장됐다는 결과를 볼 수 있다.

aws콘솔에서도 성공적으로 저장된 모습을 볼 수 있다.

우왕!

profile
개발자 새싹🌱 The only constant is change.

0개의 댓글