1.5 DynamoDB 테이블 생성하기

지금부터는 DynamoDB에 Todo 테이블을 생성할 것입니다. 파티션 키와 정렬 키는 다음과 같이 설정합니다. 참고로 이 절을 따라하기 전에 DynamoDB 설계 주의사항이 정리된 DynamoDB FAQ를 읽기 바랍니다.

  • 파티션키(Partition Key) : userId

  • 정렬키(Sort Key) : createdAt


소스 코드 상에서는 userId를 ‘1’로 고정시켜 두었습니다. 일반적으로는 유저의 키값을 partition key로 사용하기 때문입니다. 정렬키로는 레코드의 생성 시간을 사용합니다.

그럼 DynamoDB Console을 엽니다. 테이블 만들기를 클릭해 다음과 같이 테이블을 생성합니다.



그다음 Cloud 9으로 다시 돌아가서 테스트 코드를 돌려봅니다.

ec2-user:~/environment/serverless-api $ npm test

> serverless-api@1.0.0 test /home/ec2-user/environment/serverless-api
> mocha spec/*.spec.js --timeout 10000

 POST /todo
   ✓ Should return 201 status code (912ms)

 PUT /todo/:id
   ✓ Should return 200 status code (225ms)

 GET /todo
[ { content: 'world. Successfully modified!',
   createdAt: '2018-04-01T13:56:34.808Z',
   userId: '1',
   updatedAt: '2018-04-01T13:56:35.687Z',
   title: 'hello' } ]
   ✓ Should return 200 status code (224ms)

 GET /todo/:createdAt?user_id=
2018-04-01T13:56:34.808Z
1
{ content: 'world. Successfully modified!',
 createdAt: '2018-04-01T13:56:34.808Z',
 userId: '1',
 updatedAt: '2018-04-01T13:56:35.687Z',
 title: 'hello' }
   ✓ Should return 200 status code (215ms)

 DELETE /todo/:id
   ✓ Should return 204 status code (219ms)


 5 passing (2s)


DynamoDB에서 간단하게 CRUD가 되는 것을 확인할 수 있습니다.