日本語 | English
概要
AWSサービスのDynamoDBをローカルで動かすことができるDynamoDBLocal
。
用途的には、実際にDynamoDBサービスを使う前段階の開発環境用、サーバー上に配置して本稼働も良いでしょう。
公式ページ)
必要なもの
- JRE (ここでは7にしてます)
- DynamoDB.local (公式ページからDL)
今回は dynamodb_local_2016-05-17.tar.gz を使用 - アクセス言語 ※ 必要であれば
ブラウザからアクセスできれば、
ローカルコンソールからjsonを投げるだけでも操作可能。
今回はブラウザからjavascriptで操作します。
起動
jarを起動でおk。
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -port 8001
こんな感じで起動する。
$ java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -port 8001 Initializing DynamoDB Local with the following configuration: Port: 8001 InMemory: false DbPath: null SharedDb: false shouldDelayTransientStatuses: false CorsParams: *
ブラウザでDynamoDBと戯れる
DBを起動したら、 http://localhost:8001/shell/ でブラウザから確認。
左ペインにクエリを書いて、▶で実行、右ペインに実行結果が表示される。
まずはアクセスキー(作業DBファイル)を決めましょう
右上の設定ボタンからアクセスキーを指定する。
このアクセスキーでローカルDBファイルが区別される。
とりあえずこんなクエリを流してお近づきになればいいんじゃないですかね?
Create Table
var params = { TableName: "tbl_sample", KeySchema: [ { AttributeName: "id", KeyType: "HASH" } ], AttributeDefinitions: [ { AttributeName: "id", AttributeType: "N" } ], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1 } }; dynamodb.createTable(params, function(err, data) { if (err) ppJson(err); // an error occurred else ppJson(data); // successful response });
Put Item
var params = { TableName: "tbl_sample", Item: { id: 1, name: "apple", price: 120, }, ReturnValues: "NONE", ReturnConsumedCapacity: "NONE", ReturnItemCollectionMetrics: "NONE" }; docClient.put(params, function(err, data) { if (err) ppJson(err); // an error occurred else ppJson(data); // successful response });
Scan
var params = { TableName: 'tbl_sample', Limit: 10, ConsistentRead: false, ReturnConsumedCapacity: 'NONE', }; dynamodb.scan(params, function(err, data) { if (err) ppJson(err); // an error occurred else ppJson(data); // successful response });
終わりに
クエリのサンプルも画面右上メニューに一通りあるので割と容易に遊べる。
ただ、ほんまもんのDynamoDBと若干挙動違くない?ってのも過去にはあったので、その際はあくまで開発用・戯れ用と捉えて使ったほうがいいかもしれない。