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のいずれか)]
2014年10月19日日曜日
Node.jsのExpress導入
Expressをインストール
http://localhost:3000/
npm install -g expressexpress-generatorをインストール
sudo npm install -g express-generatorアプリケーション生成
express -e photoモジュールインストール
cd photo && npm install実行
DEBUG=photo ./bin/www確認
http://localhost:3000/
2014年10月16日木曜日
Blogger に SyntaxHighlighter を導入する
BloggerへのSyntaxHighlighterの導入方法。
ダッシュボード→テンプレート→HTMLの編集

以下のコードを</head>の上部に追加
投稿時は以下のように記載
コードの種類によってBrush aliasesを書き替える
Brush aliasesの種類はこちら
ダッシュボード→テンプレート→HTMLの編集

以下のコードを</head>の上部に追加
投稿時は以下のように記載
コードの種類によってBrush aliasesを書き替える
Brush aliasesの種類はこちら
ここにコードを書く
2014年10月14日火曜日
2014年10月9日木曜日
登録:
コメント (Atom)
