ブロブを使用したサンプルの作成
それでは、これから実際にWindows Azure Storageを使用したサンプルアプリケーションを作成してみましょう。シンプルな画像共有アプリケーションを、REST APIとブロブストレージを用いて作成します。
作成するサンプルは、画像ファイルのアップロード、一覧表示の機能を持っています。画像ファイルをアップロードする際に、タイトルも合わせて入力します。画像ファイルをブロブとして、タイトル情報をブロブのメタデータとして、ブロブストレージに登録します。
アプリケーションのローカル環境での実行
コードの説明に入る前に、まずはサンプルアプリケーションの実行方法について説明します。最初に、開発用のローカル環境で実行してみましょう。
Windows Azure SDKには、Windows Azure Storageのシミュレーション環境であるDevelopment Storageというツールが含まれています。ローカル環境のストレージアクセスは、このDevelopment Storageに対して行なわれます。
サンプルに含まれるサービス構成ファイル(ServiceConfiguration.cscfg)は、Development Storage用になっています。Development Storage用のストレージアカウント、ストレージへのアクセスの認証に使用する認証キー(詳細は後編で説明します)、エンドポイントはどのアプリケーションでも共通の固定値となっていますので、ここでもそのまま使用できます。
サンプルをビルドして実行してみてください。既定のブラウザに、先程のサンプルの画面キャプチャのような画面が表示されるはずです。加えて、タスクトレイにはDevelopment Storageが表示されているはずです。ローカル環境でのストレージアクセスは、このDevelopment Storageに対して行なわれます。
アプリケーションのクラウド上への配置
次にクラウド上にサンプルを配置してみましょう。シリーズ第2回の記事で、アプリケーションをクラウド上に配置する方法について扱いましたが、クラウド上のWindows Azure Storageを使用したアプリケーションの場合には、ストレージへのアクセスのためのストレージアカウントや認証キーなどの情報を取得し、本番環境に合わせてサービス構成ファイル(.cscfg)を変更する必要があります。
以下に手順を記します。
[1]Azure Services Developer Portalにサインインした後、左上の[New Project]をクリックし、さらに[Storage Account](ストレージアカウント)をクリックします。
[2]画面の指示に沿って、プロジェクトラベルやサービス名を入力し、[Create]をクリックしてストレージアカウントを作成します。
[3]作成したストレージアカウントの[Summary](サマリ)が表示されます。この画面に表示されている「Endpoints:」の情報がクラウド上のストレージのエンドポイントに、[Primary Access Key:]の情報が認証キーの情報となります。
[4]サービス構成ファイル(ServiceConfiguration.cscfg)を、クラウド環境用に修正します。「AccountName」キー(※1)には、取得したストレージアカウントを設定します。「AccountSharedKey」キー(※2)には認証キー情報を、「BlobStorageEndpoint」キー(※3)にはブロブのエンドポイントの値を設定します。
<?xml version="1.0"?> <ServiceConfiguration serviceName="AzureStorageSample" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"> <Role name="WebRole"> <Instances count="1"/> <ConfigurationSettings> <!-- Windows Azure Storageを使用するための設定として、以下を追加 --> <!-- Windows Azureのアカウント名 ローカル環境(Development Storage)では「devstoreaccount1」固定 --> <Setting name="AccountName" value="devstoreaccount1" /> <!-- ※1 --> <!-- Windows Azure Storageの認証キー(HMACSHA256暗号化の共有キー) ローカル環境(Development Storage)では 「Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==」固定 --> <Setting name="AccountSharedKey" value="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" /> <!-- ※2 --> <!-- Blobストレージのエンドポイント クラウド環境では「http://<ストレージアカウント>.blob.core.windows.net」を指定 ローカル環境(Development Storage)では「http://127.0.0.1:10000」固定 --> <Setting name="BlobStorageEndpoint" value="http://127.0.0.1:10000"/> <!-- ※3 --> </ConfigurationSettings> </Role> </ServiceConfiguration>
[5]最後に、サンプルのサービスパッケージファイル(AzureStorageSample.cspkg)と修正したサービス構成ファイル(ServiceConfiguration.cscfg)を、クラウド上に配置します。配置方法の詳細については、シリーズ第2回を参照してください。
まとめ
今回は、Windows AzureのストレージサービスであるWindows Azure Storageの概要について扱いました。また、サンプルのローカル環境での実行と、クラウド上に配置する際の手順まで説明しました。
次回の後編では、サンプルの具体的なコードについて説明します。特に、REST APIを使用したWindows Azure Storageへのアクセス方法について、詳しく説明する予定です。次回をお楽しみに。