내보내기(0) 인쇄
모두 확장

시작 중에 로컬 저장소를 사용하여 파일 저장

업데이트 날짜: 2014년 5월

이후에 응용 프로그램에서 액세스할, 시작 작업에서 만든 파일을 로컬 저장소 리소스를 사용하여 저장할 수 있습니다.

시작 작업에서 로컬 저장소 리소스를 사용하려면 ServiceDefinition.csdef 파일에서 LocalStorage 요소를 만든 다음 로컬 저장소 리소스 위치를 참조할 환경 변수를 만들어야 합니다. 이렇게 하면 시작 작업과 응용 프로그램이 로컬 저장소 리소스에서 파일을 읽고 쓸 수 있습니다.

로컬 저장소 리소스를 만들려면 ServiceDefinition.csdef 파일을 편집해야 합니다. LocalResources 섹션이 없는 경우 LocalResources 섹션을 ServiceDefinition.csdef 파일에 추가합니다. 그런 다음 LocalResources 섹션 내에서 LocalStorage 요소를 추가합니다. 로컬 저장소 리소스에 고유 이름과 시작 작업을 위한 적절한 크기를 지정합니다. 이 예제에서 고유 이름은 StartupLocalStorage입니다.

로컬 저장소 위치를 참조할 환경 변수를 만들려면 Environment 섹션과 Variable 섹션을 ServiceDefinition.csdef 파일의 Startup 섹션에 추가합니다. 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();
        }
    }
}

참고 항목

표시:
© 2014 Microsoft