AWS lambda + dynamodb use nodejs
Published in
2 min readSep 29, 2016
serverless가 대세라고 하길래, outsider님의 블로그를 참고해서 AWS에 lambda를 올려서 이것저것 해보았다.
때마침 댓글 시스템을 만들었어야 했는데, 기존 웹서버와 디비에 부가적인 기능때문에 부하를 주고 싶지가 않아서 적용해보았다.
역시나 많이 헤맸었는데, NoSQL의 scan, query등에 지식이 없고, 배낄만한 샘플코드도 없고; 아마존 가이드 문서는 어렵기만하고, nodejs는 신기하기만해서, 또 누군가는 나처럼 고민할까봐, github에 샘플을 올렸다.
## 고민했었던 부분
- dynamodb 예약어와 컬럼명이 겹쳐서 #해시 및 :콜론으로 대체하여 사용하여야한다.
ProjectionExpression : "#user_no, reg_date, contents_no, #co,#li",
FilterExpression: "#user_no = :user_no",
ExpressionAttributeNames: {
"#user_no": "user_no",
"#co": "comment",
"#li": "like",
},
ExpressionAttributeValues: {
":user_no": event.
}
- dynamodb 테이블간의 join은 어떻게 하는줄 몰라서, query를 실행시킨후 javascript array를 for문으로 처리했다 -_-;
- UpdateExpression 의 val에는 숫자가 들어갈 수도 있다.
UpdateExpression: "SET #li = #li + :val",
ExpressionAttributeNames: {
'#li': 'like'
},
ExpressionAttributeValues: {
":val":1
},
- dynamodb의 키는 신중히 정해야한다. 너무 당연한 말인가;