概要
来る2013/09/12にローカルでAmazon DynamoDBでの開発が出来る様になりました。
http://aws.typepad.com/aws_japa” target=”_blank
開発しやすく、本番と開発の変更点をエンドポイントの変更のみにとどめる事が出来るのは大きいメリットです。
今日はこのDynamoDBLocalについて書こうと思います。
AmazonDynamoDBLocalを立てる
すごく簡単です。
1. gzファイルをダウンロード
2. tarコマンドで任意のディレクトリに解凍
3. 解凍されたディレクトリで
$ java –Djava.library.path=. -jar DynamoDBLocal.jar
を実行するだけです。
デフォルトでDynamoDBLocalは8000番ポートをListenします。
また、3番で–portを指定する事で任意のポートをListenさせる事が出来ます。
INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8000
こんな表示が出ていればOKです。
DynamoDBLocalはAccessKeyId_region.dbと言う名前でデータベースファイルをローカルに作成します。
これが、全ての情報を保存しているので、これを消すと全てのデータが削除されます。
aws-cliのコマンドを使ってみよう
aws-cli(python製)をインストール
※既にインストールされている人は飛ばして下さって結構です。
2行だけです。
sudo easy_install pip sudo pip install awscli
・pythonのパッケージ管理ツールpipのインストール
・aws-cliをpipを用いてインストール
ここまで問題なく来たらawsコマンドが使える様になっているはずです。
aws-cliは以下の様な構成のコマンドになっています。
aws [options] <command> <subcommand> [parameters]
それでは代表的な
1. create-table
2. list-tables
3. update-table
4. delete-table
5. put-item
6. get-item
7. delete-item
辺りを順に叩いていきましょう。
create-table
テーブルを作成する事が出来ます。
・HASH型のみのキーを持つテーブルの場合
aws dynamodb create-table --endpoint-url http://localhost:8000 --table-name test --attribute-definitions AttributeName=testId,AttributeType=S --key-schema AttributeName=testId,KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
・HASH型及びRANGE型のキーを持つテーブルの場合
aws dynamodb create-table --endpoint-url http://localhost:8000 --table-name test2 --attribute-definitions AttributeName=testId,AttributeType=S AttributeName=range,AttributeType=S --key-schema AttributeName=testId,KeyType=HASH AttributeName=range,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
→成功時は作成テーブルの型を表すJSONがレスポンスとして表示されます。
list-tables
テーブルのリストを表示する事が出来ます。
aws dynamodb list-tables --endpoint-url http://localhost:8000
→成功したら以下の様なJSONが表示されます。
{ "TableNames": [ "test", "test2" ] }
update-table
テーブルのスループットを変更する事が出来ます。
aws dynamodb update-table --endpoint-url http://localhost:8000 --table-name test --provisioned-throughput ReadCapacityUnits=2,WriteCapacityUnits=2
→ReadCapacityUnits及びWriteCapacityUnitsが2になっているのがレスポンスから確認出来ます。
delete-tabel
テーブルを削除する事が出来ます。
aws dynamodb delete-table --endpoint-url http://localhost:8000 --table-name test2
→削除テーブルの型を表すJSONがレスポンスとして表示されます。
put-item
DynamoDBでは挿入するデータの事をアイテムと呼びます。
put-itemはRDBMSではinsertの様なコマンドです。itemと言うオプションが必須となり、JSON型で渡す必要があります。
aws dynamodb put-item --endpoint-url http://localhost:8000 --table-name test --item '{"testId":"1"}'
→レスポンスは何も返って来ません。
get-item
get-itemはそのままアイテムを取得するコマンドです。
aws dynamodb get-item --endpoint-url http://localhost:8000 --table-name test --key '{"testId":"1"}'
→指定されたキーを持つアイテムが返って来ます。
delete-item
delete-itemはアイテムを削除するコマンドです。
aws dynamodb delete-item --endpoint-url http://localhost:8000 --table-name test --key '{"testId":"1"}'
→何もレスポンスは表示されません。
ここまでで一般的なコマンドは叩けたのではと思います。
誰かのお役に立てば。Twitterフォローお願いします
「次回以降も記事を読んでみたい!」「この辺分からなかったから質問したい!」
そんな時は、是非Twitter (@daiki1003)やInstagram (@ashdik_flutter)のフォローお願いします♪
Twitterコミュニティ参加お願いします
Twitterコミュニティ「Flutter lovers」を開設しました!参加お待ちしております😁
☕️ Buy me a coffee
また、記事がとても役に立ったと思う人はコーヒーを奢っていただけると非常に嬉しいです!
コメント