フリーランス 技術調査ブログ

フリーランス/エンジニア Ruby Python Nodejs Vuejs React Dockerなどの調査技術調査の備忘録

Dynamodbのテーブル作成とJavaScriptでデータ登録

はじめに

  • aws cliを利用してDynamodbのテーブルを作成する
  • 作成したテーブルに対してデータ登録する

Dynamodb テーブル作成

  • ユーザーテーブルの作成用コマンド
aws dynamodb create-table --table-name users --attribute-definitions AttributeName=uid,AttributeType=S --key-schema AttributeName=uid,KeyType=HASH --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
aws dynamodb create-table --table-name tasks --attribute-definitions AttributeName=uid,AttributeType=S AttributeName=tid,AttributeType=N --key-schema AttributeName=uid,KeyType=HASH AttributeName=tid,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5

データ登録

  • uuidのパッケージを利用してuidを動的に生成する。登録時にConditionExpressionを指定すると既に登録済のuuidを登録したときにエラーになる。 ConditionExpressionを指定しないと同じuuidのデータがある場合、上書き保存になる。
const { v4: uuidv4 } = require('uuid');
const moment = require('moment');
const AWS = require('aws-sdk');

const db = new AWS.DynamoDB({
  region: 'ap-northeast-1'
});
const uuid = uuidv4();
const email = '<あなたのメールアドレスを指定する>';
const phone = '09012345678';

// ConditionExpressionを指定すると既に登録済のuuidを登録したときにエラーになる。
// ConditionExpressionを指定しないと同じuuidのデータがある場合、上書き保存になる
/* 登録処理
const params = {
  Item: {
    uid: {S: uuid},
    email: {S: email},
    phone: {S: phone},
  },
  TableName: 'users',
  ConditionExpression: 'attribute_not_exists(uid)'
};

db.putItem(params, (err) =>
  if (err) {
    console.error('error', err);
  } else {
    console.log('user added with uid ' + uuid);
  }
});

作成したテーブルとデータ

f:id:PX-WING:20210430061436p:plain