꾸준히 공부하는 개발자

[AWS] Lambda, API Gateway, DynamoDB 연결 - 2 본문

AWS

[AWS] Lambda, API Gateway, DynamoDB 연결 - 2

kauboy 2019. 12. 7. 14:19

저번에 dynamo db를 연결하여 lambda까지 연결하는 것을 해보았다.
이번에는 실제로 web에서 api 를 받아오는 것 까지 해보겠다.

일단 웹에서 코드를 생성하였다.

 

웹에서 테스트하기 힘들다면,

아래 구글확장프로그램을 설치해도 좋다.

https://chrome.google.com/webstore/detail/talend-api-tester-free-ed/aejoelaoggembcahagimdiliamlcdmfm

 

Talend API Tester - Free Edition

Visually interact with REST, SOAP and HTTP APIs.

chrome.google.com



const doc = require('dynamodb-doc');

const dynamo = new doc.DynamoDB();

exports.handler = (event, context, callback) => {
    console.log('Received event:', JSON.stringify(event, null, 2));
    const operation = event.httpMethod;
    const payload = {
        TableName: 'ourHealth'
    }
    switch (operation) {
        case 'POST':
            dynamo.putItem(payload, callback);
            break;
        case 'PATCH':
            dynamo.updateItem(payload, callback);
            break;
        case 'DELETE':
            dynamo.deleteItem(payload, callback);
            break;
         case 'GET':
            dynamo.scan(payload, (err, data) => {
                callback(null, {
                    'statusCode': 200,
                    'headers': {
                        'Access-Control-Allow-Origin': '*'
                    },
                    'body': JSON.stringify(data)
                });
            });
            break;
        default:
            callback(new Error(`Unrecognized operation "${operation}"`));
    }
};


 

일단 lambda function 을 변경해준다.

웹에서 사용할려면 CORS 문제를 해결해주기위해 header에 내용을 첨부해준다.

 

이제 api gateway 로 가서 api키 탭에서 api 키 표시를 눌러 아까 전 코드에 넣어준다.

그리고 cors 활성화를 누르고 api를 배포하면 끝이다.

 

이제 돌아와서 코드를 실행해보면 작동한다.

Comments