[AWS] Lambda, API Gateway, DynamoDB 연결 - 2
저번에 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를 배포하면 끝이다.
이제 돌아와서 코드를 실행해보면 작동한다.