CX's Hatena Blog

はてなブログを使ってみるテスト

Windows Azure を使ってみるテスト(ストレージ編)

いよいよ、Windows Azure 無料評価版が最終日となりました。今回はストレージ機能を使ってみたいと思います。

f:id:cx20:20140116232004p:plain

Windows Azure はストレージ機能として

  • BLOB
  • キュー
  • テーブル

が使えるようです。今回は、その中で「キュー」を使って読み書きのテストをしてみたいと思います。

1. Visual Studio Express 2013 for Web を起動する

昨日のクラウド サービスのプロジェクトを読み込みます。このプロジェクトを修正してキューの読み書きの機能を追加してみます。

2. 接続文字列の設定を追加する

[ソリューション エクスプローラー] - [WebRole1] のプロパティを開き、接続文字列の設定を追加します。

f:id:cx20:20140116232005p:plain

3. サンプルコードを書いてみる

  • Default.aspx より抜粋
      :
<div class="row">
    <div class="col-md-4">
        <h2>メッセージを送信</h2>
        <p>
            <asp:Button ID="ButtonPut" OnClick="ButtonPut_Click" runat="server" Text="Put" />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </p>
    </div>
    <div class="col-md-4">
        <h2>メッセージを受信</h2>
        <p>
            <asp:Button ID="ButtonGet" OnClick="ButtonGet_Click" runat="server" Text="Get" />
            <asp:Label ID="Label1" runat="server" Text="ここに結果が表示されます。"></asp:Label>
        </p>
    </div>
</div>
      :
  • Default.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Queue;
using Microsoft.WindowsAzure;

namespace WebRole1
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        // キューにメッセージを送信する
        protected void ButtonPut_Click(object sender, EventArgs e)
        {
            // ストレージアカウントを用意する
            CloudStorageAccount storageAccount
                = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));

            // キュークライアントを作成
            CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

            // キュー参照を取得する
            CloudQueue queue = queueClient.GetQueueReference("myqueue");

            // 存在してなければキューを作成する
            queue.CreateIfNotExists();

            // テキストボックスの内容を取得する
            string strMessage = TextBox1.Text;

            // キューメッセージを作成する
            CloudQueueMessage message = new CloudQueueMessage(strMessage);

            // キューにメッセージを書き込む
            queue.AddMessage(message);
        }

        // キューからメッセージを受信する
        protected void ButtonGet_Click(object sender, EventArgs e)
        {
            // ストレージアカウントを用意する
            CloudStorageAccount storageAccount 
                = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));

            // キュークライアントを作成する
            CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

            // キュー参照を取得する
            CloudQueue queue = queueClient.GetQueueReference("myqueue");

            // 次のメッセージを取得する
            CloudQueueMessage retrievedMessage = queue.GetMessage();

            // メッセージを書き込む
            Label1.Text = retrievedMessage.AsString;

            // キューから取り出したメッセージを削除する
            queue.DeleteMessage(retrievedMessage);
        }
    }
}

4. 発行してみる

f:id:cx20:20140116232007p:plain

5. 実行してみる

キューにメッセージ「Hello, World!」を投入してみます。

f:id:cx20:20140116232008p:plain

キューからメッセージを取得してみます。

f:id:cx20:20140116232009p:plain

メッセージ「Hello, World!」を取得できました。

6. Azure Storage Explorer をダウンロードしてみる。

Windows Azure のストレージ(BLOB/キュー/テーブル)の情報を表示することが出来る「Azure Storage Explorer」というツールがあるようなので、使ってみたいと思います。

以下よりダウンロードできます。

Azure Storage Explorer - Home

f:id:cx20:20140116232010p:plain

インストールは、ウィザードに従って行ってください。

7. Azure Storage Explorer を使ってみる。

起動してみます。

f:id:cx20:20140116232014p:plain

初期状態では、Windows Azure に接続していない為、情報が見れないようです。

「Add Account」にて「ストレージ アカウント」の情報を追加します。

f:id:cx20:20140116232015p:plain

接続できました。

f:id:cx20:20140116232016p:plain

デフォルトだと「BLOB」の情報が表示されるようです。

[Storage Type] - [Queues] を選ぶと、キューの中身が見れるようです。

f:id:cx20:20140116232011p:plain

リストよりレコードを選択してダブルクリックすると、詳細が見れるようです。

f:id:cx20:20140116232012p:plain

プロパティ情報です。登録日時と有効期限などの情報を持っているようです。

f:id:cx20:20140116232013p:plain

メッセージとして「Hello, World!」が入っていることが確認できました。

もう少し、いろいろと試したかったのですが、無料評価版が時間切れの為、ここまでにしたいと思います。

ちなみに、ローカル環境でも Windows Azure SDK が入っていれば、Windows Azure Emulator を介してストレージ機能が試せるので、なんとなく気分を味わいたい人は、それを使うというのもアリだと思います(笑)

参考

■ キュー ストレージ サービスを使用する方法 - Windows Azure

http://www.windowsazure.com/ja-jp/develop/net/how-to-guides/queue-service/

→ 現在、日本語の説明ページは画像がリンク切れの為、英語のページを推奨します。

■ How to use the queue storage service - Windows Azure(英語)

http://www.windowsazure.com/en-us/documentation/articles/storage-dotnet-how-to-use-queues-20/?fb=ja-jp