node.jsからAmazon DynamoDBへ繋げる

node.jsからDynamoDBへのアクセス方法

node.jsからDynamoDBへアクセスする方法はいくつかあります。それぞれどのようにアクセスするのか試してみましょう。

dynode

dynodeは、node.jsからDynamoDB操作するライブラリです。

早速使ってみましょう。

$ npm install dynode
$ vi app1.js

東京リージョンを指定してテーブルを作成しています。ソースは以下です。

var dynode = require('dynode');

dynode.auth({
	accessKeyId:"XXXXXXXXXXXXXXX",
	secretAccessKey:"XXXXXXXXXXXXXXX",
	host:"dynamodb.ap-northeast-1.amazonaws.com"});

var opts = {read: 5, write: 5, hash: {name: String}, range: {age: Number}};
dynode.createTable("person", opts, console.log);

実行してみます。

$ node app1.js
null { TableDescription: 
   { CreationDateTime: 1339825555.43,
     KeySchema: { HashKeyElement: [Object], RangeKeyElement: [Object] },
     ProvisionedThroughput: { ReadCapacityUnits: 5, WriteCapacityUnits: 5 },
     TableName: 'person',
     TableStatus: 'CREATING' } }

短いコードで簡単に接続できました!管理コンソールからも確認できます。

dynamo

dynamoは、node.jsからDynamoDB操作するライブラリです。

早速使ってみましょう。

$ npm install dynamo
$ vi app2.js

東京リージョンを指定してテーブル一覧を取得しています。ソースは以下です。

var dynamo = require('dynamo');
var client = dynamo.createClient({
  accessKeyId:"XXXXXXXXXXXXXXX",
  secretAccessKey:"XXXXXXXXXXXXXXX"
});
var db = client.get('ap-northeast-1');

db.fetch(function(err) {
  if (err) return console.error(err)
  var tableCount = Object.keys(db.tables).length
  console.log("This database has %s tables.", tableCount)
})

実行してみます。

$ node app2.js
This database has 1 tables.

短いコードで簡単に接続できました!

まとめ

node.jsを使ってDynamoDBにアクセスするのはとても簡単です。AWSオフィシャルSDKではありませんが、かなり短いコードでアクセスして操作することができます。IAM Roleには対応していませんが今後に期待です。

参考資料

Amazon DynamoDB

node.js

dynode

dynamo