サンプルをWindows Azureに対応させる
それでは次に、このサンプルをWindows AzureのWebロールに変更してみましょう。ここではまだ、データベースはローカル環境のSQL Serverのままで、クラウド環境への配置は最後に行います。
現在のところ、ASP.NETのWebアプリケーションのプロジェクトをCloud Serviceプロジェクトに変換する、Visual Studioの機能や他のツールは提供されていませんので、ここでは新規にCloud Serviceプロジェクトを作成し、手動でWebアプリケーションの中身をコピーすることにします。このように聞くと難しそうに思えますが、実は手順はとても簡単です。
次の手順で作業を行います。
[1]新しいプロジェクトを作成する
新規にプロジェクトを作成します。テンプレートは「Cloud Service」を選択し、「SQLAzureSample」というプロジェクト名で作成します。その後で表示される[New Cloud Service Project]ダイアログで、一つの「ASP.NET Web Role」を追加します。
[2]Default.aspxの中身をコピーする
作成したプロジェクトのWebロールの下にある、Default.aspxの[ソース]ビューを開きます。そして、Webアプリケーション側のDefault.aspxの<html>タグ以降を、上書きコピーします。
[3]Web.configを編集する
Web.configを開きます。そして、次のリスト2にあるように、Webアプリケーション側のWeb.config中にあるShopConnectionString接続文字列を<connectionStrings>要素の子要素としてコピーします。
<connectionStrings> <add name="ShopConnectionString" connectionString="Data Source=.\SQLExpress;Initial Catalog=Shop;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>
以上で、変更作業は終了です。
さっそくプロジェクトをビルドし実行してみます。すると、先程のWebアプリケーションとまったく同じ画面が表示され、ローカル環境のSQL ServerにアクセスするAzureアプリケーションが正常に動作していることが分かります。
SQL Azureを使用するための準備
ここでいったんアプリケーションからは離れ、SQL Azureを使用するための準備を整えておきましょう。
SQL Azure CTPを使用するためには、invitation code(招待コード)が必要となります。これは、Windows Azureを使用するのに必要なinvitation tokenとは異なり、別途申請が必要です。
Azure Services Developer Portalにサインインし、左側のメニューから[SQL Azure]をクリックします。すると、図4のようにInvitation Codeページが表示されます。
このページの下の部分にある「Note: If you do not have an invitation code, please go here to join our mailing list to receive one. 」という表示の「mailing list」の部分がリンクになっていますので、そこをクリックすると、「SQL Azure Registration」というページが表示されます。必要事項を入力し[送信]ボタンをクリックします。
数日中に登録したメールアドレスにinvitation codeが送られてきますので、先程の図4の画面でそのinvitation codeを入力し[Submit]ボタンをクリックします。次に表示されるTerms of Useページで[I Accept]ボタンをクリックします。
実際にSQL Azureを使用するためには、まずサーバーを作成する必要があります。invitation codeの入力後、図5のようにCreate Serverページが表示されています。
この画面で、管理者用ユーザー名とパスワードを入力します。「Location:」は「South Central US」のみ選択可能ですので、そのままにしておきます。入力後、[Create Server]ボタンをクリックします。これでサーバーが作成され、SQL Azureを使用するための準備が整いました。