はじめに
過去数回にわたってWindows Azure SDK for Node.jsについて解説してきましたが、今回はサンプルをベースにWindows AzureストレージサービスとWebフレームワークであるExpressを組み合わせた利用方法について解説します。
対象読者
今回の対象読者は以下のとおりです。
- 過去連載内容程度のWindows AzureとNode.jsの知識がある方
既にWindows Azureをご存じの方は、やや繰り返しとなる部分が出てくるかもしれませんがご了承ください。
必要な環境
Node.jsの実行環境として以下を利用します。
- Windows Azure SDK for Node.js(July 2012)
Windows Azureストレージサービスとは
Windows Azureストレージサービス(以降、Azureストレージ)とは、Windows Azure Platformで提供される外部記憶域です。Azureストレージには、BLOB・テーブル・キューと呼ばれる3つストレージが提供されています。下表に3つのストレージの特徴を示します。
名前 | 用途 |
BLOB | テキストやバイナリファイルなどの保管 |
テーブル | 非リレーショナルなデータベース |
キュー | 非同期のメッセージ通信用。FIFOなキューを提供 |
またAzureストレージの操作は、最終的にはすべてREST APIへの操作となります。したがって、.NETフレームワークだけではなく、JavaやPHP、本稿で説明するNode.jsなどさまざまな言語に対応したライブラリが公開されています。
今回説明するBLOBについての詳細は、CodeZineの記事『ブロブとテーブルを使用したWindows Azureストレージプログラミング』などを参考にしてください。
Windows Azureストレージエミュレータの準備
『Windows AzureでNode.jsを実行しよう』(CodeZine)に沿ってWindows Azure SDK for Node.jsをインストールしてあれば、同時にWindows Azure SDKもインストールされます。この中には、コンピュートエミュレータとともに、Windows Azureストレージの疑似実行環境である、ストレージエミュレータもインストールされています。
スタートメニューから、[Windows Azure Emulator]-[Storage Emulator]を選択して、ストレージエミュレータが起動することを確認してください。これによってBLOB、テーブル、キューがローカルPC上で利用可能となります。今回のサンプルは、ストレージエミュレータを利用します。
プロジェクトの準備
それでは、サンプルとしてBLOBへのファイルアップローダーを作成していきます。
[1]プロジェクトを準備する
Windows AzureプロジェクトとWebロールを作成します(リスト1)。
> New-AzureServiceProject sample …(プロジェクトの作成) > Add-AzureNodeWebRole WebRole1 …(Webロールの追加)
[2]Azureライブラリのインストール
Azureストレージを操作するライブラリ(以降、Azureライブラリ)は、npmコマンドでインストールします。リスト2の手順でAzureとExpressのライブラリをインストールし、最後にexpressコマンドを実行してExpressフレームワークを利用する準備を行います。
> cd WebRole1 > npm install azure …(Azureライブラリのインストール) > npm installl express …(Expressのインストール) > .\node_modules\.bin\express -t ejs …(EJSテンプレートの展開) > npm install …(EJS展開後必要なライブラリのインストール)
Node.js向けのAzureライブラリには、Azureストレージとサービスバスの操作ライブラリが含まれます。また、ライブラリのソースは、GitHub上に「WindowsAzure / azure-sdk-for-node」として公開されています。興味がある方は参照ください。
サンプルをダウンロードした場合は、WebRole1フォルダで、引数なしの「npm install」コマンドを実行すれば必要なライブラリがインストールされます。