エクスポート (0) 印刷
すべて展開

Azure の IIS コンポーネントを構成する

更新日: 2014年10月

Startup 要素を使用して、Web ロール環境を構成するタスクを指定できます。Windows Azure にデプロイされるアプリケーションには通常、前提条件としてホスト コンピューターにインストールする必要のある必須コンポーネントがあります。スタートアップ タスクを使用して、必須コンポーネントをインストールすることも、環境の構成設定を変更することもできます。Web ロールとワーカー ロールはこの方法で構成できます。

noteメモ
Startup 要素を使用できるのは、Windows Azure SDK Version 1.3 またはそれ以降を使用している場合です。

スタートアップ タスクを実行するようにサービスを構成するには、サービス定義ファイルに Startup ノードを追加する必要があります。Startup ノードは実行するタスクを指定します。これは通常、自動実行できるスクリプトを含む CMD ファイルです。

次のコード サンプルでは、CMD スクリプト ファイルを実行して IIS Web ロールを構成するスタートアップ タスクを示しています。

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="IIS_Demo" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
   <WebRole name="MyWebRole">
      <Startup>
         <Task commandLine="ConfigureIIS.cmd" executionContext="elevated" taskType="simple" />
      </Startup>
      <Sites>
         <Site name="Web">
            <Bindings>
               <Binding name="HttpIn" endpointName="HttpIn" />
            </Bindings>
         </Site>
      </Sites>
      <Endpoints>
         <InputEndpoint name="HttpIn" protocol="http" port="80" localPort="80" />
      </Endpoints>
   </WebRole>
</ServiceDefinition>

スタートアップ タスクを指定するときは、実行コンテキストとして次の値を選択できます。

  • Limited: プロセスをホストしているロールと同じ特権で実行されます。

  • Elevated: 管理者特権で実行されます。

タスク タイプとして次の値が使用できます。

  • Simple (既定値): タスクの終了を待って次のタスクを開始します。

  • Background: タスクの終了を待たずに次のタスクを開始します。

  • Foreground: バックグラウンドに似ていますが、すべてのフォアグラウンド タスクが終了するまで、ロールは再開されません。

noteメモ
スタートアップ タスクのコマンドおよびバッチ ファイルは、ANSI 形式で保存する必要があります。ファイルの先頭にバイト順マーカーを設定するファイル形式は正しく処理されません。

Windows Azure アプリケーションをサポートするには、場合によっては、追加のサーバー コンポーネントや Microsoft 製でないパッケージをインストールする必要があります。このような場合、Microsoft Web Platform Installer (Web PI) コマンド ライン ツールを使用して、タスクを実行できます。Web PI は、インターネット インフォメーション サービス (IIS)、SQL Server Express、.NET Framework、Visual Web Developer などの Microsoft Web Platform の最新コンポーネントを簡単に取得できるツールです。Web PI では、多くの無料 Web アプリケーションをインストールして実行することも簡単にできます。Web PI の詳細については、「Microsoft Web Platform Installer」を参照してください。

WebPiCmdLine の詳細については、「WebPICmd コマンド ライン ツールを使用する」を参照してください。

ユーザーがよくインストールするコンポーネントの 1 つが、ハイパーテキスト プリプロセッサ (PHP) です。以下の手順では、サービス用に PHP をインストール方法について説明します。以下の手順は、Web ロールを少なくとも 1 つ持つ Windows Azure プロジェクトが作成済みであることを前提としています。Visual Studio で Windows Azure プロジェクトを作成する方法の詳細については、「Visual Studio を使用した Windows Azure プロジェクトの作成」を参照してください。

  1. Web PI コマンド ライン ツールをダウンロードします。

  2. Windows Azure プロジェクトのフォルダーに、WebpiCmdLine.exe、Microsoft.Web.Deployment.dll、Microsoft.Web.PlatformInstaller.dll、Microsoft.Web.PlatformInstaller.UI.dll の各ファイルを展開します。

  1. Visual Studio で Windows Azure プロジェクトを開きます。

  2. ソリューション エクスプローラーで、ソリューションを展開します。

  3. Web ロールをクリックします。[追加] をクリックして、[新しいフォルダー] をクリックします。

  4. フォルダーの名前を「startup」にします。

  5. [startup] フォルダーをクリックします。[追加] をクリックして、[既存の項目] をクリックします。

  6. Webcmdline ファイルを展開したフォルダーへ移動します。3 つの DLL ファイルと 1 つの EXE ファイルを選択して、[追加] をクリックします。

  7. [startup] フォルダーで、3 つの DLL ファイルと 1 つの EXE ファイルを選択します。プロパティ ウィンドウで、[出力ディレクトリにコピー] プロパティを [新しい場合はコピーする] に設定します。

次の手順では、スタートアップ タスクとして実行する CMD ファイルを作成します。コマンド ファイルは、Web PI コマンド ライン インストーラーを使用して、PHP 5.3 をインストールします。

  1. メモ帳または使い慣れたテキスト エディターを開きます。

    Warning警告
    Visual Studio で作成したテキスト ファイルは、既定でバイト順マークを含む形式で保存されますが、その場合、ファイルをバッチ ファイルとして実行することはできません。Visual Studio を使用してコマンド ファイルを作成する場合は、[ファイル] メニューの [ファイル <ファイル名> に名前を付けて保存] の詳細オプション メニューを使用して、Windows Azure で実行できる形式でファイルを保存します。詳細オプション メニューは、[保存] ボタンの右側にある小さな三角形をクリックすると表示され、[エンコード付きで保存] をクリックすると、[保存オプションの詳細設定] ダイアログ ボックスが開きます。このダイアログ ボックスを使用して、ファイルのエンコード方法を指定します。[Unicode (UTF-8 シグネチャなし) - コードページ 65001] を指定すると、正しく実行されるコマンド ファイルが保存されます。

  2. 次のコマンドをコピーしてファイルに貼り付けます。

    md "%~dp0appdata"
    reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d "%~dp0appdata" /f
    %~dp0webpicmdline /AcceptEula /Products:PHP53 >>log.txt 2>>err.txt
    reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d %%USERPROFILE%%\AppData\Local /f
    
    
  3. [ファイル] メニューの [名前を付けて保存] をクリックします。「InstallPHP.cmd」と入力して、[保存] をクリックします。

  4. ソリューション エクスプローラーで、ソリューションを展開します。

  5. [startup] フォルダーをクリックします。[追加] をクリックして、[既存の項目] をクリックします。

  6. InstallPHP.cmd ファイルを保存したフォルダーに移動します。ファイルを選択して、[追加] をクリックします。

  7. startup フォルダーで、InstallPHP.cmd ファイルを選択します。プロパティ ウィンドウで、[出力ディレクトリにコピー] プロパティを [新しい場合はコピーする] に設定します。

  1. ソリューション エクスプローラーで、ServiceDefinition.csdef をダブルクリックして開きます。

  2. サービス定義ファイル内の Web ロールを見つけます。

  3. 次の XML フラグメントをコピーして、</WebRole> タグの直前に貼り付けます。

    ...
        <Startup>
          <Task commandLine="startup\InstallPHP.cmd" executionContext="elevated" taskType="simple"/>
        </Startup>
    ...
    
  4. ファイルを保存します。

作業が完了すると、Windows Azure プロジェクト ソリューションは次の図とほぼ同じ状態になります。

VS ソリューション エクスプローラーの startup フォルダー

関連項目

表示:
© 2015 Microsoft