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

起動時におけるローカル ストレージへのファイルの格納

更新日: 2014年5月

スタートアップ タスクによって作成されたファイルをローカル ストレージ リソースに格納できます。その後、これらのファイルにアプリケーションがアクセスします。

スタートアップ タスクでローカル ストレージ リソースを使用するには、ServiceDefinition.csdef ファイルに LocalStorage 要素を作成し、ローカル ストレージ リソースの場所を参照する環境変数を作成する必要があります。スタートアップ タスクとアプリケーションは、ローカル ストレージ リソースに対してファイルの読み書きを行うことができます。

ローカル ストレージ リソースを作成するには、ServiceDefinition.csdef ファイルを編集する必要があります。LocalResources セクションがない場合は、ServiceDefinition.csdef ファイルに LocalResources セクションを追加します。次に、LocalResources セクション内に LocalStorage 要素を追加します。ローカル ストレージ リソースに一意な名前を付け、スタートアップ タスクのサイズを指定します。この例では、StartupLocalStorage という名前を付けています。

ローカル ストレージの場所を参照する環境変数を作成するには、ServiceDefinition.csdef ファイルの Startup セクションに Environment セクションと Variable セクションを追加します。Variable 要素には、スタートアップ タスクで使用する環境変数の一意の名前を指定する必要があります。この例では、この環境変数に PathToStartupStorage という名前を付けています。

ServiceDefinition.csdef ファイルの Variable セクションに RoleInstanceValue 要素を追加します。xPath 属性では、LocalStorage 要素で参照されているローカル ストレージ リソースの一意な名前を使用します。ローカル ストレージ リソースの一意な名前は @name= の後に記述し、一重引用符で囲みます。この例では、xPath 属性は "/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='StartupLocalStorage']/@path" であり、ローカル ストレージ リソース名 StartupLocalStorage が含まれています。

ServiceDefinition.csdef ファイルの関連セクションを次に示します。

    <!-- Create the Local Storage used by the startup task. -->
    <LocalResources>
      <LocalStorage name="StartupLocalStorage" sizeInMB="5"/>
    </LocalResources>
    
    <Startup>
      <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple">
        <Environment>
          
          <!-- Create the environment variable that informs the startup task where to find its Local 
               Storage. %PathToStartupStorage% resolves to the fully qualified path to the location 
               of the Local Storage.-->
          <Variable name="PathToStartupStorage">
            <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='StartupLocalStorage']/@path" />
          </Variable>
          
        </Environment>
      </Task>
    </Startup>

Startup.cmd バッチ ファイルは PathToStartupStorage 環境変数を使用して、ローカル ストレージ上に MyTest.txt ファイルを作成します。その例を次に示します。

REM   Create a simple text file.

ECHO This text will go into the MyTest.txt file which will be in the    >  "%PathToStartupStorage%\MyTest.txt"
ECHO path pointed to by the PathToStartupStorage environment variable.  >> "%PathToStartupStorage%\MyTest.txt"
ECHO The contents of the PathToStartupStorage environment variable is   >> "%PathToStartupStorage%\MyTest.txt"
ECHO "%PathToStartupStorage%".                                          >> "%PathToStartupStorage%\MyTest.txt"

REM   Exit the batch file with ERRORLEVEL 0.

EXIT /b 0

アプリケーションがローカル ストレージ リソースにアクセスするには、GetLocalResource メソッドからパスを取得する必要があります。ローカル ストレージ リソースのパスを取得した後は、標準的なファイルの読み取り操作と書き込み操作を実行して、ローカル ストレージ リソースの内容を読み書きできます。次の例では、ローカル ストレージ リソースにある MyTest.txt の内容を読み取り、それを MVC 3 アプリケーションのホーム ページに表示する方法を示します。

using Microsoft.WindowsAzure.ServiceRuntime;
using System;
using System.Text;
using System.Web.Mvc;

namespace StartupExercise.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            string SlsPath = RoleEnvironment.GetLocalResource("StartupLocalStorage").RootPath;

            string s = System.IO.File.ReadAllText(SlsPath + "\\MyTest.txt");

            ViewBag.Message = "Contents of MyTest.txt = " + s;

            return View();
        }
    }
}

関連項目

表示:
© 2015 Microsoft