LightSwitch と Windows Azure

LightSwitch アプリケーションを Windows Azure に配置する

Mike Wade

 

新しい Microsoft Visual Studio LightSwitch は、フォーム上でデータを扱う従来の基幹業務 (LOB) アプリケーションの作成を簡略化することを目的としています。LightSwitch は、データベースへの接続を作成するという複雑な処理のほとんどを実行し (データ ストレージ層)、洗練された UI を表示し (プレゼンテーション層)、ビジネス ロジックのコードを実装する (ロジック層) ことで、上記のようなアプリケーションのビルドに伴うオーバーヘッドを削減します。

日常の仕事をさらに簡略化するため、このようなアプリケーションを Windows Azure でホストできます。Windows Azure とは、マイクロソフトのデータセンターでホストされるインターネット規模のクラウド サービス プラットフォームです。このプラットフォームには、Windows Azure (クラウド サービス OS) と SQL Azure (クラウドでホストされるデータベース サービス) が含まれています。Windows Azure プラットフォームで LightSwitch アプリケーションをホストすると、インフラストラクチャ管理に Web サーバーやデータ サーバーなどのリソースを用意する必要がなくなります。つまり、Windows Azure がすべての管理を自動的に行います。

今回の記事では、Vision Clinic というサンプル アプリケーションを使用して、LightSwitch アプリケーションを Windows Azure に配置する方法を紹介します。このサンプル アプリケーションは、bit.ly/LightSwitchSamples からダウンロードできます。Vision Clinic は、検眼所向けに設計された簡単な LOB アプリケーションで、患者と予約状況、および患者が必要とする製品の管理に使用できます。Vision Clinic は、データベースを 2 つ使用します。1 つは患者と予約状況を管理するアプリケーション組み込みのデータベースで、もう 1 つは検眼所で販売可能な製品を管理する PrescriptionContoso という名前のアタッチ型のデータベースです。本来のチュートリアルでは、Vision Clinic を 2 層のデスクトップ アプリケーションとして配置する方法が説明されています。つまり、Vision Clinic は完全にクライアント ユーザーのコンピューターで実行されますが、アプリケーションのデータは別の場所でホストされます。今回紹介する手順を完了すると、Windows Azure にアプリケーションを発行できるようになります。

SQL Azure データ ソースにアタッチする

チュートリアルでは、PrescriptionContoso というサンプルの外部データベースを使用します。PrescriptionContoso データベースは MSDN からダウンロード可能で、開発用のローカル コンピューターにインストールできます。PrescriptionContoso データベースはアタッチ型のデータ ソースなので、開発者自身がデータベースを作成し、データを設定する必要があります。完成したアプリケーションを Windows Azure に配置すると、アプリケーションではクラウドでホストされる組み込みのデータ ソースとアタッチ型のデータ ソースが両方使用されます。先に、SQL Azure でアタッチ型のデータ ソースを作成するという難しい部分から取りかかりましょう。

まず、windows.azure.com から Windows Azure のアカウントにログインします。まだアカウントを持っていなければ、このサイトからサインアップできます。Windows Azure Platform 管理ポータルにサインインしたら、画面左の [ナビゲーション] ウィンドウの [データベース] をクリックし、中央の項目一覧にサブスクリプションのデータベース情報を表示します (ポータルのレイアウトの詳細については、https://msdn.microsoft.com/ja-jp/library/gg441576.aspx を参照してください)。まだ、アカウントでデータベースのサブスクリプションを取得していなければ、[ナビゲーション] ウィンドウでサブスクリプションを選択し、画面上部のリボンの [作成] をクリックします (図 1 参照)。これによりサーバー作成ウィザードが起動し、SQL Server をホストする地域の選択、管理者のログイン名とパスワードの指定、およびファイアウォール規則の作成が可能になります (図 2 参照)。少なくとも、次の 2 つのファイアウォール規則をサーバーに追加する必要があります。

  1. [他の Windows Azure サービスにこのサーバーへのアクセスを許可する] チェック ボックスをオンにします。これにより、Vision Clinic アプリケーションからこのデータベースにアクセスできるようになります (Vision Clinic は、最終的には Windows Azure でホストされます)。
  2. サーバーへのアクセスを可能にする IP アドレスの範囲を追加します。この IP アドレスのコンピューターは、Windows Azure Platform 管理ポータルを使ってデータベースを管理できます。たとえば、今回使用するコンピューターの IP アドレスは 131.107.xxx.yyy なので、131.107.0.0 から始まり 131.107.0.255 で終わるアドレス範囲を追加しました。ポータルを使ってデータベースを管理するには、依然として Windows Azure サブスクリプションのログイン情報が必要ですが、このファイアウォール規則を設定すれば、開発中に Visual Studio からデータベースにアクセスできるようになります。アプリケーションの作成と配置が完了したら、外部のコンピューターからデータベースにアクセスできないように、このファイアウォール規則を削除します。

Windows Azure Platform Management Portal: Creating a Database Server
図 1 Windows Azure Platform 管理ポータル: データベース サーバーの作成

Using the Wizard to Create a Database Server
図 2 データベース サーバー作成のためのウィザードの使用

データベース サーバーを作成すると、プロパティを確認できるようになります。[ナビゲーション] ウィンドウで、作成したデータベース サーバーを選択します (この例では「pq96r63lrm」という名前です)。項目一覧には、作成したすべてのファイアウォール規則と既定の master (マスター) データベースが含まれます。

PrescriptionContoso の情報用に、新しいデータベースを作成する必要があります。Windows Azure Platform 管理ポータルの [ナビゲーション] ウィンドウでデータベース サーバーが選択されていることを確認し、リボンの [作成] をクリックします。データベース名には、「PrescriptionContoso」と入力し、エディションと最大サイズは既定の設定のままにします (図 3 参照)。

Creating the PrescriptionContoso Database
図 3 PrescriptionContoso データベースの作成

次に、PrescriptionContoso データベースにテーブルを追加します。画面左の [ナビゲーション] ウィンドウで新しく作成したデータベースを選択し、[管理] をクリックします。これにより新しい Web ページが開き、PrescriptionContoso データベースを管理できるようになります。新しいページで [New Table] (新しいテーブル) をクリックすると、テーブルの編集ページが開きます (図 4 参照)。テーブルに「Product」という名前を付け、図 5 に示したスキーマ情報を入力します。

Adding the Product Table to the PrescriptionContoso Database
図 4 PrescriptionContoso データベースへの製品テーブルの追加

図 5 製品テーブルのスキーマ

既定値 ID 必須 主キー
ProductID Int  
ProductName nvarchar (50)      
MSRP Money      
Description nvarchar(max)        
ProductImage varbinary(max)        
Category nvarchar(max)        

もう 1 つ新しいテーブルを作成し、「ProductRebate」という名前を付け、図 6 に示したスキーマ情報を入力します。すべてのアタッチ型データ ソースと同様、LightSwitch が PrescriptionContoso データベースとやり取りするのに使用する接続文字列は、プロジェクトの出力時に生成される web.config ファイルに格納されます。3 層アプリケーションでは web.config ファイルを IIS サーバーに格納するため、アプリケーションのユーザーは確認できません。

図 6 製品テーブルのスキーマ

既定値 ID 必須 主キー
ProductRebateID Int  
ProductID Int      
RebateStart Smalldatetime        
RebateEnd Smalldatetime        
Rebate Money        

ただし、2 層アプリケーションではアプリケーションをインストールしたすべてのユーザーが web.config ファイルを表示できます。そのため、実行時に PrescriptionContoso データベースを使用するために、管理者以外のログインとユーザーを作成しておくことが重要です。このユーザーはデータベース サーバーの完全な管理者ではなく、PrescriptionContoso データベースでは作成、読み取り、更新、削除 (CRUD) の操作しか行えません。マスター データベースへの接続を開き、SQL Server Management Studio Express で次のコマンドを実行するか sqlcmd を使用して、データベースへの新しいログインを作成します (詳細については、https://msdn.microsoft.com/ja-jp/library/ee336268 を参照してください)。

CREATE LOGIN <user> WITH password='<password>';

上記の <user> と <password> は新しいユーザー名とパスワードに置き換えてください。指定するパスワードは、強力にする必要があります (詳細については、https://msdn.microsoft.com/ja-jp/library/ms161962 を参照してください)。

次に、SQL Azure の管理者アカウントで PrescriptionContoso データベースに接続し、ユーザーを作成します。

CREATE USER <user> FROM LOGIN <user>;

データベースのスキーマは作成しましたが、テーブルには何もデータを設定していません。Windows Azure Platform 管理ポータルのデータ デザイナーを使用するか、サンプルに含まれている PrescriptionContoso.mdf ファイルから Windows Azure データベースにデータを移行して、テーブルにデータを追加できます。Microsoft SQL Server 2008 および Microsoft SQL Server 2008 Express に付属する bcp ユーティリティを使用することも可能です (詳細については、bit.ly/bhH7Ub (英語) を参照してください)。さらに別の方法として、実行中のアプリケーションからデータを追加することもできます。2 層アプリケーションは SQL Azure でホストされるデータ ソースにアタッチできるので、Vision Clinic を 2 層アプリケーションとして発行および実行し、データベースを設定します。

アタッチするデータ ソースのスキーマが Windows Azure に用意されたので、アプリケーションを発行します。手順 8. までは、Vision Clinic のチュートリアルの配置手順に従って進めます (詳細については、https://msdn.microsoft.com/ja-jp/library/ee256749.aspx#deploy を参照してください)。[Other Connection Information] (その他の接続情報) ページに、作成したばかりのデータベースへの接続文字列を入力します。Windows Azure Platform 管理ポータルの [ナビゲーション] ウィンドウでデータベースを選択し、[プロパティ] ウィンドウの [Connection Strings] (接続文字列) をクリックすると、接続文字列を確認できます。ADO.Net 接続文字列をコピーし (図 7 参照)、LightSwitch 発行ウィザードの [PrescriptionContoso] ボックスに貼り付けます。[Connection Properties] (接続プロパティ) ダイアログ ボックスを開き、作成した新しいユーザー用のユーザー名とパスワードを忘れずに入力します。[接続のテスト] をクリックして、SQL Azure データベースに接続できることを確認します。

Getting the Connection String for the PrescriptionContoso Database
図 7 PrescriptionContoso データベースの接続文字列の取得

アタッチするデータ ソースの接続文字列を入力したら、発行ウィザードを終了してアプリケーションが発行されるのを待ちます。発行されたら、発行出力で生成された web.config ファイルを閲覧し、Windows Azure データベースの接続文字列が含まれているのを確認します。アプリケーションは 2 層のままなので、エンド ユーザーのコンピューターには Microsoft .NET Framework 4 がインストールされている必要があります。ただし、SQL Azure の PrescriptionContoso データベースを使って、アプリケーションからデータの読み取りと書き込みを行えるようになります。

Windows Azure でアプリケーションをホストする

次に、Windows Azure で完全にアプリケーションをホストする方法を紹介します。Windows Azure は IIS を実行しているため、企業内の IIS サーバーで管理するのと同じ種類のアプリケーションを Windows Azure で管理できます。ユーザーがアプリケーションを実行するのに必要なのは Microsoft Silverlight 4 以上のみで、完全な .NET Framework 4 は必要ありません。そのため、クライアントの配置が大幅に簡略化されます。Vision Clinic サンプルを変更して、アプリケーションを Windows Azure に発行します。サービス層にはまだ .NET Framework 4 が必要ですが、Windows Azure が自動的にプロビジョニングします。

Windows Azure に Vision Clinic を発行する前に、サブスクリプションでいくつか追加の準備作業が必要です。Windows Azure Platform 管理ポータルで、ホストするサービスを事前に作成しておく必要があります。このサービスは、配置したアプリケーションのサーバー側コードを実行します。アプリケーションを配置している間アプリケーション バイナリの格納に使用するストレージ アカウントを作成することも必要です。アプリケーションのデータは、SQL Azure データベースに保存します。

ポータルに戻り、[ナビゲーション] ウィンドウの [ホーム] をクリックします (図 8 参照)。リボンに [新規ホステッド サービス] というボタンがあります。このボタンをクリックすると、ホストするサービスを作成する新しいウィンドウが表示されます。アプリケーションのサービス名、URL のプレフィックス、および地域を入力します。[デプロイのオプション] の [デプロイしない] をクリックします。これは、LightSwitch 発行ウィザードがアプリケーションを配置するためです。ストレージ アカウントも同様に、リボンの [新規ストレージ アカウント] をクリックし、表示されるポップアップのフィールドに情報を入力することで作成します。これで Windows Azure Platform 管理ポータルで、ホストするサービスとストレージに移動できるようになります。残りの Windows Azure の構成は、LightSwitch 発行ウィザードで行います。

Creating a Hosted Service in the Windows Azure Platform Management Portal
図 8 Windows Azure Platform 管理ポータルにおけるホストするサービスの作成

LightSwitch IDE で、Vision Clinic サンプルにいくつか更新を加えましょう。Vision Clinic はクラウドでホストされているため、フォーム認証を使用して LightSwitch アプリケーションを保護することをお勧めします (詳細については、先月号の記事、「LightSwitch アプリケーションへのアクセスを保護する」を参照してください)。これは、VisionClinic のアプリケーション プロパティの [アクセス制御] タブで構成します (図 9 参照)。次に、[アプリケーションの種類] タブに移動します。エンド ユーザーのコンピューターにインストールされた他のアプリケーションとやり取りできるようにするため (Microsoft Excel へのデータのエクスポートなど)、VisionClinic はデスクトップ アプリケーションのままにします。アプリケーション サーバーの構成には、Windows Azure を選択します (図 10 参照)。デザイナーの [発行...] をクリックし、発行プロセスを開始します。

Using Forms Authentication
図 9 フォーム認証の使用

Choosing to Host Application Services on Windows Azure
図 10 Windows Azure におけるホスト アプリケーション サービスの選択

[次へ] を 2 回クリックすると、[Windows Azure への接続] ページが表示されます。このページでは、次の 2 つの情報が必要になります (図 11 参照)。

  1. アカウントのサブスクリプション ID
  2. 管理証明書のサムプリント

Connecting to Windows Azure in the LightSwitch Publish Wizard
図 11 LightSwitch 発行ウィザードにおける Windows Azure への接続

サブスクリプション ID は、Windows Azure Platform 管理ポータルで、ホストするサービスの [プロパティ] ウィンドウから取得します。Windows Azure に発行するのが初めてなら、Windows Azure サービスが発行プロセスの間に身元の確認に使用する新しい証明書を作成する必要もあります。これは、発行プロセスではログインが必要とされないためです。ドロップダウン リスト ボックスの一覧の [<新しい自己署名証明書の作成...>] をクリックします。これにより、コンピューターの証明書ストアに新しい証明書が追加されます。次に、Windows Azure アカウントに証明書の情報をアップロードする必要があります。発行ウィザードの [パスのコピー] をクリックし、ポータルに戻り、[ナビゲーション] ウィンドウの [管理証明書] をクリックします。リボンの [証明書の追加] をクリックし、確認のダイアログ ボックスで [参照...] をクリックします (図 12 参照)。発行ウィザードからコピーしたパスを貼り付けると、証明書が追加されます。

Adding a Management Certificate to Windows Azure
図 12 Windows Azure への管理証明書の追加

発行ウィザードの [Azure サービスの構成] ページで、Windows Azure Platform 管理ポータルで作成したホストするサービスの名前とストレージ アカウントを指定します (図 13 参照)。これらのドロップダウンの一覧は、1 つ前の [Windows Azure への接続] ページで有効なサブスクリプション ID と管理証明書を入力すると、発行ウィザードが自動的に作成します。運用環境とステージング環境のどちらの環境にアプリケーションを配置するかを選択することも可能です。この例では、運用環境を選択します。

Setting Windows Azure Service and Storage Information While Publishing
図 13 発行時の Windows Azure サービスとストレージに関する情報の設定

次に、アプリケーションのセキュリティ設定を指定する必要があります。つまり、配置したアプリケーションの SSL 接続の確立に使用する証明書を指定します。HTTPS 経由で Windows Azure と通信すると、クライアントとサーバーの間でやり取りされる業務上のデータ、またフォーム認証情報を使用したときのユーザー名とパスワードが保護されます。発行ウィザードで、既に Windows Azure にアップロードされている既存の証明書から選択するか、新しい証明書をアップロードできます (図 14 参照)。ドロップダウン リスト ボックスで、Windows Azure にアップロード可能な新しい自己署名証明書を作成できます。LightSwitch デスクトップ アプリケーションで使用される Silverlight ブラウザー外起動ツールは、HTTPS 経由で実行されるとき、サーバーで信頼できる証明書を要求します。証明書を信頼できない場合、アプリケーションは正常に実行されません。最も適切な方法は、信頼関係のある証明機関が署名した証明書を使用することです。安全性は下がりますが、クライアントの証明書ストアに新しい自己署名証明書を事前にインストールする方法もあります (詳細については、bit.ly/ra3CKG (英語) を参照してください)。ブラウザーで実行する LightSwitch クライアントは自己署名証明書を使用できますが、Silverlight アプリケーションを読み込む前にブラウザーが警告を表示します。

Setting the Certificate to Use for an HTTPS Connection
図 14 HTTPS 接続に使用する証明書の設定

次に発行ウィザードに入力する情報は、組み込みデータ ソース用のデータベース接続の設定です。この場合は、LightSwitch はデータベースを自動的に作成し、SQL Azure にスキーマを発行します。そのため、SQL Azure で自動作成されたマスター (master) データベースの接続文字列を取得することから始めます。この接続文字列の値を、発行ウィザードで管理者の接続文字列に貼り付けます。参照ボタンをクリックして発行ウィザードに接続プロパティを表示し、master の代わりに新しいデータベース名 (たとえば、「VisionClinic」) を入力します (図 15 参照)。次に、ユーザー パスワードを更新します (コピーした接続文字列には、ダミーのパスワードしか含まれていません)。接続文字列の詳細プロパティで、Encrypt 接続プロパティに True を設定し、TrustServerCertificate 接続プロパティに False を設定することも検討します。これにより、接続が暗号化され、man-in-the-middle 攻撃ができなくなります。アプリケーションの CRUD 操作に、管理者の接続文字列を使用するのは望ましくないので、発行ウィザードの [Create Database Login] (データベース ログインの作成) をクリックし、データベース サーバーへの新しいログインを作成します。

Setting the Connection String for the Application Data
図 15 アプリケーション データの接続文字列の設定

次に、アプリケーションの初期セキュリティ管理者のユーザー名とパスワードを入力します。初期セキュリティ管理者は、実行中の LightSwitch クライアント アプリケーションでセキュリティ管理画面へのアクセスを提供します。この画面へのアクセス許可が与えられたすべてのセキュリティ管理者は、アプリケーションを実行する最初のアクセスを他のユーザーに提供できます。

既に [その他の接続] ウィザード ページで追加した PrescriptionContoso 接続文字列を引き続き使用します。[証明書の指定] ページで、クライアント アプリケーションへの署名を選択できます (図 16 参照)。アプリケーションに署名すると、アプリケーションに変更を加えて Windows Azure に発行したとき、Silverlight ブラウザー外起動ツールがユーザーのコンピューターで自動的にアプリケーションを更新できるようになります (詳細については、bit.ly/iY6lFP (英語) を参照してください)。

Specifying a Certificate to Sign the Client Application
図 16 クライアント アプリケーションに署名する証明書の指定

ウィザードが完了したら、アプリケーションをインストールのためにパッケージ化し、Windows Azure に送信します。発行を終えると、LightSwitch は Windows Azure Platform 管理ポータルを起動します。LightSwitch は Windows Azure にこのホスト型のサービスを開始するよう指示しますが、このプロセスは完了するまでに数分かかる場合があります。ポータルの [ナビゲーション] ウィンドウの [ホステッド サービス] タブで、配置の進行状況を追跡できます。

配置が完了したら、ポータルの [ナビゲーション] ウィンドウの [ホステッド サービス] をクリックし、配置が完了した Vision_Clinic にたどり着くまで、項目一覧の子ノードを開きます (図 17 参照)。[プロパティ] ウィンドウには配置済みアプリケーションの DNS 名が表示されるので、アプリケーションが HTTPS を使用するように自動的にリダイレクトされる初回以降は、このリンクをクリックしてアプリケーションの Web ページを開きます。この URL は、クライアントがアプリケーションを実行するのに使用します。サービス構成ファイルで Microsoft.LightSwitch.RequireEncryption プロパティに False を設定し、HTTPS のリダイレクトを解除することも可能ですが、これは行わないことを強くお勧めします (この後説明します)。

Viewing the Published Application in the Windows Azure Platform Management Portal
図 17 Windows Azure Platform 管理ポータルにおける発行したアプリケーションの表示

発行の出力

背景のしくみを見てみましょう。Windows Azure に発行するための専用出力ファイルは、次の 3 つです。

  • Vision Clinic.cspkg
  • ServiceDefinition.csdef
  • ServiceConfiguration.cscfg

build 出力ディレクトリに Vision Clinic.cspkg ファイルがあります。このファイルには、Windows Azure アプリケーションに関連する全ファイルがまとめられています。つまり、アプリケーションのバイナリ、およびサービス定義ファイルとサービス構成ファイルです。ホストするサービスを構成するために、発行プロセスで、Vision Clinic.cspkg ファイルが Windows Azure に転送されます。

ServiceDefinition.csdef ファイルは、Vision Clinic 用のクラウド サービス定義ファイルです (図 18 参照)。この XML ファイルは、アプリケーションの Web サイトを構成する方法を規定します。ファイルでは、(WebRole ノードの下の) LightSwitchWebRole という単一の Web ロールで、HTTP と HTTPS (Sites ノードと EndPoints ノード) の両方を有効にすると宣言しています。さらに、HTTPS が Windows Azure コンピューターに保存された証明書を要求することを規定し (Certificates ノード)、このアプリケーションのためのカスタマイズ可能な構成設定を宣言しています (ConfigurationSettings ノード)。これには、診断ログ情報の設定、および HTTP 呼び出しを HTTPS へリダイレクトするかどうかの設定が含まれます。

図 18 ServiceDefinition.csdef ファイル

<ServiceDefinition name="Vision_Clinic"
  xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="LightSwitchWebRole"
           vmsize="Small"
           enableNativeCodeExecution="true">
    <ConfigurationSettings>
      <Setting name="Microsoft.LightSwitch.Trace.Enabled" />
      <Setting name="Microsoft.LightSwitch.Trace.LocalOnly" />
      <Setting name="Microsoft.LightSwitch.Trace.Level" />
      <Setting name="Microsoft.LightSwitch.Trace.Sensitive" />
      <Setting name="Microsoft.LightSwitch.Trace.Categories" />
      <Setting name="Microsoft.LightSwitch.RequireEncryption" />
    </ConfigurationSettings>
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="HttpIn" endpointName="HttpIn" />
          <Binding name="HttpsIn" endpointName="HttpsIn" />
        </Bindings>
      </Site>
    </Sites>  
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443"
        certificate="SSLCertificate" />
    </Endpoints>
    <Certificates>
      <Certificate name="SSLCertificate" storeLocation="LocalMachine"
        storeName="My" />
    </Certificates>
  </WebRole>
</ServiceDefinition>

図 19 に示すのは、LightSwitchWebRole の実際の構成設定が含まれたクラウド サービス構成ファイル (ServiceConfiguration.cscfg) です。build 出力ディレクトリにある ServiceConfiguration.cscfg ファイルを見ると、発行ウィザードの [セキュリティ設定] ページで指定された SSL 認証サムプリントを含む設定を確認できます。

図 19 ServiceConfiguration.cscfg ファイル

<ServiceConfiguration serviceName="Vision_Clinic"
  xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
  <Role name="LightSwitchWebRole">
    <Instances count="1" />
    <ConfigurationSettings>
      <!-- A value of true will enable diagnostic logging on the server -->
      <Setting name="Microsoft.LightSwitch.Trace.Enabled" value="false" />
      <!-- A value of true only lets local access to Trace.axd -->
      <Setting name="Microsoft.LightSwitch.Trace.LocalOnly" value="true" />
      <!-- The valid values for the trace level are: None, Error,
        Warning, Information, Verbose -->
      <Setting name="Microsoft.LightSwitch.Trace.Level"
        value="Information" />
      <!-- A value of true will indicate that logging sensitive
        information is okay -->
      <Setting name="Microsoft.LightSwitch.Trace.Sensitive" value="false" />
      <!-- The semi-colon separated list of categories that will be
        enabled at the specifed trace level -->
      <Setting name="Microsoft.LightSwitch.Trace.Categories"
        value="Microsoft.LightSwitch" />
      <!-- A value of true will indicate http requests should be
        re-directed to https -->
      <Setting name="Microsoft.LightSwitch.RequireEncryption"
        value="true" />
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="SSLCertificate"
        thumbprint="CD27FF4C85A2AD495A054D606E354BCAAD01B3D8"
        thumbprintAlgorithm="sha1" />
    </Certificates>
  </Role>
</ServiceConfiguration>

LightSwitchWebRole の追加の構成設定を変更するには、2 とおりの方法があります。1 つは、LightSwitch のプロジェクト ディレクトリに格納されている ServiceConfiguration.cscfg ファイルを編集する方法です。たとえば、サーバーで診断ログを有効にするには、Microsoft.LightSwitch.Trace.Enabled プロパティを次のように修正する必要があります。

<Setting name="Microsoft.LightSwitch.Trace.Enabled" value="true" />

プロジェクトのクラウド サービス構成ファイルに設定した値は、最終的にはビルド後のクラウド サービス構成ファイルに含まれます。

配置後に ServiceConfiguration.cscfg の値を変更することも可能です。Windows Azure Platform 管理ポータルで、[ナビゲーション] ウィンドウの下部に表示されている [ホステッド サービス、ストレージ アカウント、CDN] をクリックし、次に [ホステッド サービス] をクリックします。項目一覧で、配置した Vision_Clinic の項目にたどり着くまでノードを開きます。そこで、リボンに [構成] ボタンが表示されます。このボタンをクリックすると、新しいサービス構成ファイルをアップロードするか既存のファイルを編集できます。

Windows Azure の追加機能を使用する

Windows Azure の多くの追加機能には組み込みのサポートがありませんが、プロジェクトの ServiceDefinition.csdef ファイルと ServiceConfiguration.cscfg ファイルに簡単な修正を加えると、Windows Azure の追加機能を活用できるようになります。次に、いくつかの例を示します。

仮想マシン (VM) のサイズ: Windows Azure には複数のサイズのコンピューティング インスタンスが用意されており、それにより各サービス インスタンスに提供するリソースの量が規定されます。VM のサイズが大きくなると、アプリケーションを実行するのにより多くのリソースが必要になります。LightSwitch アプリケーションのコンピューティング サイズは既定で Small (小) に設定されていますが、次に示すように、ServiceDefinition.csdef ファイル内の既定の Web ロールの vmsize 属性を更新することでサイズを変更できます。

<WebRole name="LightSwitchWebRole"
         vmsize="ExtraSmall"
         enableNativeCodeExecution="true">

ベータ版で現在使用可能な ExtraSmall (最小) が、Windows Azure で利用できる最もリソースの消費量が少ないサービスです。VM の全サイズの要約については、https://msdn.microsoft.com/ja-jp/library/ee814754 を参照してください。

Microsoft Windows Azure Connect: Windows Azure Connect は Windows Azure リソースとオンプレミスのリソース間で、IP ベースのネットワーク接続を可能にします (詳細については、https://www.microsoft.com/windowsazure/ja/jp/features/virtualnetwork/ を参照してください)。Windows Azure Connect (現在は CTP 版) は、Windows Azure に配置したアプリケーションから、社内に設置した SQL Server データベースや SharePoint サイトに接続する方法を提供します。Windows Azure VM をローカル ドメインに加え、アプリケーションで Windows 認証を使用できるようにすることも可能です。LightSwitch アプリケーションを構成して、Windows Azure Connect の機能を活用できます。こうした構成の実行について説明するのは今回の範囲を超えているため、LightSwitch デベロッパー センターの「LightSwitch アプリケーションを展開する」 (bit.ly/pxmV5d) をご確認ください。

Mike Wade は、Visual Studio LightSwitch に取り組む開発者です。彼はチームの中で、配置とプロジェクトのツール機能に重点的に取り組んでいます。

この記事のレビューに協力してくれた技術スタッフの Beth MassiJohn Rivard に心より感謝いたします。