Windows Azure Page Blob の活用 ~ クラウドカバー Episode 57
57回目を迎えた Wade と Steve による Channle 9 の人気番組クラウドカバー。 今回は MVP の Brent Stineman をゲストに迎え、Windows Azure の Page Blob に関するお話です。 Windows Azure の Page Blob は Azure Drive の基盤テクノロジーとして使用されているため、多くの方が知らずとつかっている場合も多いかと思いますが、今回は Azure Drive だけじゃもったいない、の精神で Page Blob の活用方法を議論していきます。 まずはいつものようにニュースから。 ◆ Accessing a Service on the Windows Azure Service Bus from Windows Phone 7 最初の話題は Windows Phone 7 から、Windows Azure の Service Bus に接続するためのコーディング紹介のブログ。 通常、Windows Azure の Service Bus を利用する際には Microsoft.ServiceBus な名前空間のライブラリを活用することで、簡単にサービス接続を実現できるわけですが、Microsoft.ServiceBus.dll を利用できない環境などで、どのように Service Bus への接続を行うかが今回の記事でのポイント。 主に ACS につないで認証トークンを受け取る方法と、そのトークンを使って実際に Service Bus に接続するための方法が解説されています。 ◆ Autoscaling Windows Azure Applications 現在 PAG(発音は「パグ」。正式名称は P atterns A nd Practices G roup)チームでは Enterprise Library の一環として Windows Azure 用のアプリケーションブロックの開発を進めています。 今回紹介するブログエントリでは、Windows Azure のオートスケールに関する実際のアプリケーションブロックや、 コーディングサンプルを紹介しているのではありませんが、現在開発中(※)のオートスケールのためのアプリケーションブロックの概要を紹介しています。 ※その後、 Windows Azure Autoscaling Application Block (WASABi) として プレビュー版が公開されています 。是非お試しください! ◆ Building and Deploying Windows Azure Projects Using MSBuild and TFS 2010 MSBuild を使った Windows Azure プロジェクトのビルドとデプロイに関するウォークスルーなドキュメントです。Azure SDK 1.4 から登場したコンフィギュレーションファイルの分割(デバッグ用とリリース用で設定を変える etc)への対応や、Windows Azure 環境へのアプリケーションのデプロイ、またその際のこまごまとした設定や、Blob ストレージにビルド成果物を保存する方法など、詳細な手法が紹介されています。 ビルド環境にデプロイを組み込んでおきたい!というときに是非。 ◆ Sogeti Creates the Windows Azure Privilege Club 本日のゲスト Brent が所属する Sogeti 社がホストする Windows Azure Privilege Club の紹介です。クライアント企業同士のナレッジ交換を目的としたソーシャルな会のようです。 ということで、いよいよ本日の本題 Page Blob のお話。 きっかけは、Brent が Azure のトレーニング講師をした際に、「Page Blob デモが見たい」というリクエスト。 それを元に解説を書いたのがこちらのエントリ「 A Page at a Time (Page Blobs – Year of Azure Week 7) 」と、「 Page, After Page, After Page (Year of Azure Week
」。 画像ファイルの受け渡し(アップロードと、ダウンロード)に Page Blob を用いたサンプルです。「数百メガバイトのファイルを受け渡しする際に、アップロードに5、10分、ダウンロードにも5、10分と待つのはちょっと、、、」、ということで、Page Blob の特性であるランダムアクセスに強いところを生かしつつ、並列性を持たせたサンプルになっています。 ということで、早速 Brent のデモへ。 2つの Viusal Studio が立ち上がっていますが、左がファイルを送る Transmitter (アップロードを行う側)で、右がファイルを受け取る Reciver (ダウンロードを行う側)です。 まず、Transmitter 側では、Page Blob を作成し、保存領域を確保します。 今回は 23552 バイトを確保しています。これは今回必要な領域の倍程度の領域。 // create our page blob CloudPageBlob pageBlob = container.GetPageBlobReference(uniqueBlobName); pageBlob.Properties.ContentType = “image\jpeg” ; pageBlob.Metadata.Add( “size” , streams.Length.ToString()); pageBlob.Create(23552); // now its visible to other processes, but empty デモではブレークポイントを仕掛けて、ここまでの実行で一旦ストップ。 実際に Blob 領域を見ると、23KB のファイルが作られていますが、中身を確認しても何も表示されません(領域確保だけされている状態)。 引き続きアップロードを行うためのコードを確認しつつ、部分的にアップロードを行った(繰り返し分を数回実行した)後に、Azure の Storage 領域にアップロードされた先ほどのファイルの中身を確認すると、以下のように、、、 ここまでにアップロードされた情報のみが表示されます。 このデータを受け取る Reciver 側のコードもほぼ同様のコードになっています。 ここで、ひとつ Tips. foreach (CloudPageBlob pageBlob in container.ListBlobs()
Read the original here:
Windows Azure Page Blob の活用 ~ クラウドカバー Episode 57


