share facebook facebook2 twitter menu hatena pocket slack

2013.01.29 TUE

AWS SDK for Node.js ってなんじゃ?

三浦 悟

WRITTEN BY三浦 悟

少し遅くなりましたが、AWS SDK for Node.jsが出たので、今回はこれを簡単に触ってみようと思います。

○インストール


npm install aws-sdk

○S3にアクセス

・test.js


/*
AWSオブジェクトを初期化します。
*/
var AWS = require('aws-sdk');

/*
アカウント情報やリージョン等を設定します。
*/
AWS.config.update({accessKeyId: 'xxxxxxxxxxxxx',
secretAccessKey: 'yyyyyyyyyyyyyyyyyyyyyyy',
region: 'ap-northeast-1'});

/*
このようにしても問題ありません。
AWS.config.loadFromPath('./credentials.json');
*/


/*
S3オブジェクトを作ります。
*/
var s3 = new AWS.S3();

/*
バケットのオブジェクト一覧を取得するには以下のようにします。
*/
s3.client.listObjects({Bucket:"memorycraft-log"}, function(err,data){
if(err){
console.log(err);
}
else{
for(var i=0;i console.log(data.Contents[i].Key);
}
}
});

基本的には、呼び出し→コールバックという一般的なnode.jsの作法となります。
結果、以下のように正常に取得できました。


# node test.js
logs/
logs/20121221%3F--num-instances_$folder$
logs/20121221/
logs/20121221/ip-10-128-12-239-04_0.gz
logs/20121221/ip-10-128-12-239-04_1.gz
logs/20121221/ip-10-128-12-239-04_10.gz
logs/20121221/ip-10-128-12-239-04_2.gz
logs/20121221/ip-10-128-12-239-04_3.gz
logs/20121221/ip-10-128-12-239-04_4.gz
logs/20121221/ip-10-128-12-239-04_5.gz
logs/20121221/ip-10-128-12-239-04_6.gz
logs/20121221/ip-10-128-12-239-04_7.gz
logs/20121221/ip-10-128-12-239-04_8.gz
logs/20121221/ip-10-128-12-239-04_9.gz
logs/20121221/ip-10-128-12-239-04_98.gz
logs/20121221/ip-10-128-12-239-04_99.gz
logs/20121221/ip-10-157-2-63-04_0.gz
logs/20121221/ip-10-157-2-63-04_1.gz
logs/20121221/ip-10-157-2-63-04_10.gz
logs/20121221/ip-10-157-2-63-04_100.gz
logs/20121221/ip-10-157-2-63-04_2.gz
logs/20121221/ip-10-157-2-63-04_3.gz
logs/20121221/ip-10-157-2-63-04_4.gz
logs/20121221/ip-10-157-2-63-04_5.gz
logs/20121221/ip-10-157-2-63-04_6.gz
logs/20121221/ip-10-157-2-63-04_7.gz
logs/20121221/ip-10-157-2-63-04_8.gz
logs/20121221/ip-10-157-2-63-04_9.gz

○DynamoDBにアクセス


/*
AWSオブジェクトを初期化します。
*/
var AWS = require('aws-sdk');

/*
DynamoDBオブジェクトを作ります。
*/
var ddb = new AWS.DynamoDB();

/*
投入するデータは以下のようにします。
*/
var data = {
id:{S:'msg_'+(new Date()).getTime()},
msg:{S:'hoge'},
datetime:{S:(new Date())}
};

/*
投入します。
*/
ddb.client.putItem({
TableName:'nodetest',
Item:data
},
function(err, res) {
if(err){
console.log("Error [" + err.code + "] id=" + data.id.S);
}
else{
console.log("Done id=" + data.id.S);
}
});

結果は以下のようになります。


# node test.js
Done id=msg_1356091073919

AWSコンソールで確認すると、正常に登録されたことがわかります。

他にもEC2とSWFにアクセスできますが、他のサービスはまだこれからのようです。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。