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

시작 작업이 계산 에뮬레이터와 클라우드에서 서로 다른 작업을 수행하게 만들기

업데이트 날짜: 2013년 11월

시작 작업이 클라우드에서 작동하는 경우와 계산 에뮬레이터에서 작동하는 경우 서로 다른 단계를 수행하게 할 수 있습니다.

클라우드에서 실행되는 경우와 계산 에뮬레이터에서 실행되는 경우 시작 작업이 시작 시 서로 다른 작업을 수행하는 것이 필요할 때가 있습니다. 예를 들어 계산 에뮬레이터에서 실행될 때는 시작 시 SQL 데이터의 새 복사본을 사용하려고 하지만 클라우드에서 실행될 때는 이 단계를 수행하지 않으려고 할 수 있습니다. 또 다른 예를 들면 클라우드에서 수행하지 않을 디버깅 단계를 계산 에뮬레이터에서 수행하려고 할 수 있으며 계산 에뮬레이터에서 유용하거나 필요하지 않은 성능 최적화 단계가 클라우드에서 필요할 수 있습니다. 계산 에뮬레이터가 클라우드와 기본적으로 동일하게 동작하게 만들기 위해 많은 노력을 기울였지만 둘 사이에는 여전히 미묘한 차이점이 있으므로 계산 에뮬레이터에서 실행되는 경우 클라우드에서 실행되는 경우와는 다른 단계를 시작 중에 수행해야 할 수도 있습니다. 계산 에뮬레이터와 클라우드의 이러한 차이점은 Differences Between the Compute Emulator and Windows Azure 문서에 설명되어 있습니다.

계산 에뮬레이터와 클라우드에서 서로 다른 작업을 수행하려면 환경 변수를 ServiceDefinition.csdef 파일에서 만든 다음 시작 작업에서 테스트하면 됩니다.

환경 변수를 만들려면 Environment 섹션과 Variable 섹션을 ServiceDefinition.csdef 파일의 Startup 섹션에 추가합니다. Variable 요소의 경우 시작 작업에서 사용될 환경 변수에 고유한 이름을 사용해야 합니다. 이 예제에서 환경 변수의 이름은 ComputeEmulatorRunning입니다. ServiceDefinition.csdef 파일의 Variable 섹션 내에서 xPath 특성이 "/RoleEnvironment/Deployment/@emulated"RoleInstanceValue 요소를 추가합니다. 이 xPath 특성은 기능적으로 String ComputeEmulatorRunning = RoleEnvironment.IsEmulated.ToString().ToLower(); 문과 같습니다.

이 예제에서 ComputeEmulatorRunning 환경 변수의 값은 계산 에뮬레이터에서 실행되는 경우 "true"이고 클라우드에서 실행되는 경우에는 "false"입니다.

    <Startup>
      <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple">
        <Environment>
          
          <!-- Create the environment variable that informs the startup task whether it is running 
               in the Compute Emulator or in the cloud. "%ComputeEmulatorRunning%"=="true" when 
               running in the Compute Emulator, "%ComputeEmulatorRunning%"=="false" when running 
               in the cloud. -->

          <Variable name="ComputeEmulatorRunning">
            <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
          </Variable>

        </Environment>
      </Task>
    </Startup>

Startup.cmd 배치 파일은 ComputeEmulatorRunning 환경 변수를 사용하여 Startup.cmd 배치 파일이 클라우드에서 실행되는지 아니면 계산 에뮬레이터에서 실행되는지에 따라 다른 작업을 수행합니다.

REM   Check if this task is running on the compute emulator.

IF "%ComputeEmulatorRunning%" == "true" (
    REM   This task is running on the compute emulator. Perform tasks that must be run only in the compute emulator.
) ELSE (
    REM   This task is running on the cloud. Perform tasks that must be run only in the cloud.
)

참고 항목

표시:
© 2014 Microsoft