Eclipse(nodeclipse)+Node.js+Express4+DynamoDBの開発環境をWindows上に構築する
はじめましてNode.js。AWS Lambdaでいろいろ作ってみようと思ったときに今まではJavaを使っていました。ただサーバーレス構成でのWebアプリケーションを考えると、クライアントへのリアルタイムなレスポンスが必要になった時にJavaだとやっぱり呼び出し遅延の問題があったりとむずかしいのかなと思ったので一念発起してNode.jsを使ってみようというのがこのエントリの起点です。
2018.09.28 追記
この記事、けっこう読んでいただいているようなので以下2点を注意書きさせていただきます
- 「AWS LambdaでJavaの呼び出し遅延の問題」の記載について、「コールドスタート」のことを言っています。この対策として「ウォームスタート」があります。
- 「AWS LambdaでのNode.jsのサポートバージョン」について、2018年09月現在、「v6.10」「v8.10」となっているようです。「v4.3.2」は新規作成できないようです。
Node.js をインストール
https://nodejs.org/en/ にアクセス
- v6.10 系をインストールする場合は https://nodejs.org/dist/v6.10.3/ にアクセス (Lambdaのサポートバージョンが「v4.3.2」、「v6.10」のため)
node-v6.10.3-x64.msi をダウンロード
- インストール開始
- インストールフォルダは「/nodejs」に設定
- プロキシ環境下の場合はnpmにプロキシ設定が必要になるのでDOSプロンプトにて以下のコマンドを実行
C:\>npm config set proxy http://[USERNAME]:[PASSWORD]@[PROXY_HOST]:[PROXY_PORT] C:\>npm config set https-proxy http://[USERNAME]:[PASSWORD]@[PROXY_HOST]:[PROXY_PORT]
nodeclipse をインストール
- /eclipse4.7/eclipse.exe よりEclipseを起動
- workspaceを設定(本メモでは「/workspace_4.7」とする)
- プロキシ環境下の場合は、「設定」>「一般」>「ネットワーク接続」を選択し、以下を設定
- アクティブ・プロバイダー「マニュアル」
- 「HTTP」「HTTPS」にチェックをつけ「編集」にて両方に以下を設定
- 「ホスト」: [PROXY_HOST]
- 「ポート」: [PROXY_PORT]
- 「認証が必要」: チェックをつける
- 「ユーザ」: [USERNAME]
- 「パスワード」: [PASSWORD]
- 「適用」を選択後に、「適用して閉じる」にて設定画面を閉じる
- 「ヘルプ」>「新規ソフトウェアのインストール」を開く
- 「追加」ボタンを押し「リポジトリーの追加」を表示、以下を設定し「OK」を選択
- 「名前」: nodeclipse
- 「ロケーション」: http://www.nodeclipse.org/updates/
- 「作業対象」に「nodeclipse」を選択する
- インストールするプラグインが表示されるので「すべて選択」した後に「次へ」
- 「~見つけることができませんでした」が表示される場合、Eclipseを再起動し再実施
- あとは基本的に「はい」「OK」を繰り返しインストール
nodeclipse を設定
- 「設定」>「Nodeclipse」を選択
- 「Node.js path」に以下を設定する
- \nodejs\node.exe
Express4をインストール
nodeclipseをインストールするとExpressの「3.6.2」がデフォルトでインストールされています。したがってExpress4は手動でnpmからインストールします。
- npm にてプロキシ設定を行うためDOSプロンプトにて以下のコマンドを実行
C:\>npm install -g express C:\>npm install -g express-generator
- 以下に実行ファイルがインストールされる
- \Users[USER_NAME]\AppData\Roaming\npm\node_modules\express-generator\bin\express-cli.js
- 「設定」>「Nodeclipse」を選択
- 「Express path」に1のパスを設定する
AWS Toolkit for Eclipseをインストール
- 「ヘルプ」>「新規ソフトウェアのインストール」を開く
- 「追加」ボタンを押し「リポジトリーの追加」を表示、以下を設定し「OK」を選択
- 「名前」: AWS
- 「ロケーション」: https://aws.amazon.com/eclipse
- 「作業対象」に「AWS」を選択する
- インストールするプラグインが表示されるので「すべて選択」した後に「次へ」
- あとは基本的に「はい」「OK」を繰り返しインストール
AWS Toolkit for Eclipseを設定する
AWSのアカウントを持っている場合はキーを発行して設定すればよいですが、今回はローカル開発を想定しているのでキー、シークレットに設定する値は適当で構いません。ただこのあたりの値がlocalデータベースのファイル名に使われるようなので半角英数字を設定するのが適当かと思われます。
- 「設定」>「AWS ツールキット」を選択
- 「プロファイル詳細」に以下を設定
- 「アクセス・キーID」: test
- 「秘密アクセス・キー」:****
- 「適用して閉じる」を選択
DynamoDB ローカルテストツールをインストール
- 「設定」>「AWSツールキット」>「DynamoDB ローカルテストツール」を選択
- 「インストール・ディレクトリー」に以下を設定(※ インストール・ディレクトリは手動で作成すること)
- 「インストール・ディレクトリー」: C:\usr\local\dynamodb-local
- 「適用」を選択
- バージョンに以下を選択して「インストール」
- 「バージョン」: 2016-01-07
- インストール完了したら「適用して閉じる」を選択
- 「ウィンドウ」>「パースペクティブ」>「パースペクティブを開く」>「その他」>「AWS管理」を選択
- 「AWSエクスプローラー」が開くので右上の立方体マークを選択
- リージョンが表示されるので「localhost」を選択
- 「Amazon DynamoDB」が表示されるので右クリック「Start DynamoDB Local」を選択
- DynamoDB Localが「http://localhost:8000」で起動する
Node.js Express プロジェクトの作成
- プロジェクト・エクスプローラーで右クリック「新規」>「Node.js Express Project」を選択
- プロジェクト名を入力して「完了」を選択
- プロジェクト・エクスプローラーにファイルが生成される
- 「/bin/www」を右クリックし「実行」>「Node Application」を選択
- ブラウザにて「http://localhost:3000/」にアクセスする
まとめ
JavaやRubyの開発環境構築に負けるとも劣らないぐらいハマりポイントが何箇所かありました。(特に「Express4」のあたり。。。) と、今回は書けませんでしたがDynamoDBとの連携は「dynamoose」などを使ってみるとよいかと思います。
参考
Eclipse に Nodeclipse を入れて Node.js のデバッグ環境を作る : まだプログラマーですが何か?
【Node.js】Eclipseの設定(Nodeclipse + Express 4) - STDIO
node.js - How to update Express.js template in nodeclipse - Stack Overflow
GitHub - dynamoosejs/dynamoose: Dynamoose is a modeling tool for Amazon's DynamoDB