悪意の哲学
2014年12月1日月曜日
WebRTC リンクまとめ
Web notes.log
AWS-EC2上に自分用のSTUNサーバを立てる話
http://blog.wnotes.net/blog/article/stun-server-on-aws-ec2
Qiita
WebRTCのオープンソースソフトウェアまとめ
http://qiita.com/atskimura/items/97b2cc04e19781f4a4e6
CodeZine
WebRTC(PeerJS)で遠隔作業支援システムを作る(基礎知識編)
http://codezine.jp/article/detail/8016?p=3
2014年11月2日日曜日
DynamoDB Local のインストールと実行
DLし解凍
http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz
以下のコマンドを解凍したフォルダで実行
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar
2014年10月23日木曜日
2014年10月20日月曜日
Node.js で 同期処理 async
asyncをインストール
npm install async --save同期処理
var async = require('async'); async.series([ function (callback) { console.log("1"); callback(null, 1); }, function (callback) { console.log("2"); callback(null, 2); }, function (callback) { console.log("3"); callback(null, 3); }, function (callback) { console.log("4"); callback(null, 4); }, ], function (err, results) { if (err) { throw err; }else{ console.log('all task done. ' + results); } });
Node.js から DynamoDB を操作
AWS-SDKをインストール
npm install aws-sdk --save設定ファイルを作成 aws_config.json
{ "accessKeyId":"xxxxxxxx", "secretAccessKey":"xxxxxxxx", "region":"ap-northeast-1" }DynamoDB接続
var aws = require('aws-sdk'); aws.config.loadFromPath('./aws_config.json'); var dynamodb = new aws.DynamoDB({ endpoint: new aws.Endpoint('http://localhost:8000') });createTable
var params = { TableName: 'TEST_01', /* required */ AttributeDefinitions: [ /* required */ { AttributeName: 'ID', /* required */ AttributeType: 'S' /* required */ }, { AttributeName: 'TIME_STAMP', /* required */ AttributeType: 'S' /* required */ }, /* more items */ ], KeySchema: [ /* required */ { AttributeName: 'ID', /* required */ KeyType: 'HASH' /* required */ }, { AttributeName: 'TIME_STAMP', /* required */ KeyType: 'RANGE' /* required */ }, /* more items */ ], ProvisionedThroughput: { /* required */ ReadCapacityUnits: 1, /* required */ WriteCapacityUnits: 1 /* required */ }, }; dynamodb.createTable(params, function(err, data) { if (err){ console.log(err); }// an error occurred else { console.log(data);} // successful response });putItem
console.log("putItem"); dynamodb.putItem({ TableName:"TEST_01", Item: { ID: {S:"id1"}, TIME_STAMP: {S:"2013-10-01 00:00:00"}, TEXT: {S:"text"}, NAME: {S:"name"} } }, function(err,data){ if (err){ console.log(err); } else { console.log(data);} });getItem
dynamodb.getItem( { TableName:"TEST_01", Key: { ID: {S:"id1"}, TIME_STAMP: {S:"2013-10-01 00:00:00"}, } },function(err,data){ if (err){ console.log(err); } else { console.log(data);} });query
dynamodb.query( { TableName:"TEST_01", KeyConditions : { "ID" : { AttributeValueList:[ {S:"id1"} ], ComparisonOperator:'EQ', }, } },function(err,data){ if (err){ console.log(err); } else { console.log(data);} });
dynamodb.query( { TableName:"TEST_01", KeyConditions : { "ID" : { AttributeValueList:[ {S:"id1"} ], ComparisonOperator:'EQ', }, "TIME_STAMP" : { AttributeValueList:[ {S:"2013-10-01 00:00:00"} ], ComparisonOperator:'LE', } } },function(err,data){ if (err){ console.log(err); } else { console.log(data);} });batchGetItem
var params = { "RequestItems": {"TEST_01": {"Keys": [ {"ID": {"S":"id1"}, "TIME_STAMP":{"S":"2013-10-01 00:00:00"}}, {"ID": {"S":"id2"}, "TIME_STAMP":{"S":"2013-10-02 00:00:00"}}, {"ID": {"S":"id3"}, "TIME_STAMP":{"S":"2013-10-01 00:00:00"}} ], "AttributesToGet":["ID", "TIME_STAMP", "NAME"] } } }; dynamodb.batchGetItem(params, function(err, data) { if (err){ console.log(err); } else { console.log(data.Responses.TEST_01);} callback(err, 6); });deleteItem
var params = { TableName: 'TEST_01', /* required */ Key: { ID: {S:"id1"}, TIME_STAMP: {S:"2013-10-01 00:00:00"}, } }; dynamodb.deleteItem(params, function(err, data) { if (err){ console.log(err); } else { console.log(data);} });describeTable
dynamodb.describeTable( { TableName:"TEST_01", },function(err,data){ if (err){ console.log(err); } else { console.log(data);} });deleteTable
dynamodb.deleteTable( { TableName:"TEST_01", },function(err,data){ if (err){ console.log(err); } else { console.log(data);} });listTables
dynamodb.listTables(function (err, data) { if (err){ console.log(err); } else { console.log(data);} callback(err, 8); });比較演算子 ComparisonOperator
EQ | = |
LE | <= |
LT | < |
GE | >= |
GT | > |
BEGINS_WITH | 前方一致 |
BETWEEN | 範囲 |
AWS CLI から DynamoDB local を操作
こちらがとても参考になります。
テーブル作成:HASHキー
テーブル作成:HASHキー
aws dynamodb create-table --endpoint-url http://localhost:8000 \ --table-name test1 \ --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テーブルリスト
aws dynamodb list-tables --endpoint-url http://localhost:8000テーブル詳細
aws dynamodb describe-table --table-name test1 --endpoint-url http://localhost:8000テーブルスループット変更
aws dynamodb update-table --endpoint-url http://localhost:8000 \ --table-name test \ --provisioned-throughput ReadCapacityUnits=2,WriteCapacityUnits=2追加
aws dynamodb put-item --endpoint-url http://localhost:8000 \ --table-name test --item '{"testId":"1"}'取得
aws dynamodb get-item --endpoint-url http://localhost:8000 \ --table-name test --key '{"testId":"1"}'削除
aws dynamodb delete-item --endpoint-url http://localhost:8000 \ --table-name test --key '{"testId":"1"}'
MacにAWS CLIをインストール
インストール
% sudo easy_install pip % sudo pip install awscli設定ファイルを作成
% aws configure AWS Access Key ID [None]: [アクセスキーIDを設定] AWS Secret Access Key [None]: [シークレットアクセスキーを設定] Default region name [None]: [リージョンを設定(東京: ap-northeast-1)] Default output format [None]: [出力フォーマットを設定(text,json,tableのいずれか)]
登録:
投稿 (Atom)