1. inouet

    No comment

    inouet
Changes in tags
Changes in body
Source | HTML | Preview

Lambdaも出たことだし、node.jsもやってみようということで環境構築します。

1. Nodeのインストール

http://qiita.com/ryosy383/items/2ea9c92a792302b159b0

これみてやる。

$ brew update
$ brew install nodebrew
$ nodebrew install latest (データダウンロードとコンパイルに超時間かかる…)

$ nodebrew list
v0.12.2

current: none


$ nodebrew use v0.12.2

$ echo 'export PATH=$PATH:/Users/ユーザー名/.nodebrew/current/bin' >> ~/.bashrc

nodebrew使うと時間かかるので、サクッと試したいだけなら、 nodebrewではなく、brew installでいいかもしんない。

$ brew install node

2. AWS SDKのインストール

インストールするパッケージの定義作成 (package.json)

cat << EOT > package.json
{
    "dependencies": {
        "aws-sdk": ">= 2.0.9",
        "node-uuid": ">= 1.4.1"
    }
}
EOT

インストール

$ npm install

npm WARN package.json @ No description
npm WARN package.json @ No repository field.
npm WARN package.json @ No README data
node-uuid@1.4.3 node_modules/node-uuid

aws-sdk@2.1.23 node_modules/aws-sdk
├── xmlbuilder@0.4.2
├── xml2js@0.2.8
└── sax@0.5.3

3. サンプルを見てみる

下記にサンプルがあるので見てみる。

http://aws.amazon.com/jp/developers/getting-started/nodejs/

$ git clone https://github.com/awslabs/aws-nodejs-sample.git
$ cd aws-nodejs-sample
$ cat sample.js

// Load the SDK and UUID
var AWS = require('aws-sdk');
var uuid = require('node-uuid');

// Create an S3 client
var s3 = new AWS.S3();

// Create a bucket and upload something into it
var bucketName = 'node-sdk-sample-' + uuid.v4();
var keyName = 'hello_world.txt';

s3.createBucket({Bucket: bucketName}, function() {
  var params = {Bucket: bucketName, Key: keyName, Body: 'Hello World!'};
  s3.putObject(params, function(err, data) {
    if (err)
      console.log(err)
    else
      console.log("Successfully uploaded data to " + bucketName + "/" + keyName);
  });
});

S3にバケット作ってファイル上げる例ですね。

実行すると、下記のような感じでUUID付きの長いバケットが作られてその中にhello_world.txt が置かれるようです。

$ node sample.js
Successfully uploaded data to node-sdk-sample-a0038ade-1189-45be-84ca-c19ff5685644/hello_world.txt

確認してみる。

$ aws s3 ls s3://node-sdk-sample-a0038ade-1189-45be-84ca-c19ff5685644/

2015-04-14 20:45:43         12 hello_world.txt

4. APIリファレンスで学ぶ

それぞれのサービス(S3とかDynamoDBとか)の操作方法は下記リファレンスを見てみる。

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/index.html

5. 試しにDynamoDB

$ vim dynamodb.js
var AWS = require('aws-sdk');

var dynamodb = new AWS.DynamoDB({region: 'ap-northeast-1'});

// テーブルリストを取得する

var params = {
    ExclusiveStartTableName: 'STRING_VALUE',
    Limit: 10
};

dynamodb.listTables(params, function(err, data) {
    if (err) {
        console.log(err, err.stack); // an error occurred
    } else {
        console.log(data);           // successful response
    }
});
$ node dynamodb.js

{ LastEvaluatedTableName: 'test9',
  TableNames:
   [ 'test1',
     'test2',
      :
      :
     'test9' ] }

とりあえずテーブル一覧取り出せた。なんとかなりそう。

開発環境構築

ローカルの開発環境として、WebStromを入れて、下記の設定をした。

WebStorm の Node.js 開発環境を構築する

すごくまとまってて良い記事。