Экспорт (0) Печать
Развернуть все

Настройка задачи запуска для выполнения разных действий в вычислительном эмуляторе и облаке

Обновлено: Ноябрь 2013 г.

Вы можете настроить выполнение различных действий для задачи запуска в ситуациях, когда задача работает в облаке, в отличие от выполнения в эмулятор вычислений.

Иногда необходимо, чтобы задача запуска выполняла различные задачи при выполнении в облаке и в эмулятор вычислений. Например, может понадобиться использовать свежую копию данных SQL при запуске в эмулятор вычислений, но не выполнять этот шаг при работе в облаке. Другой пример: вам могут понадобиться шаги отладки в эмулятор вычислений, которые не требуются в облаке, и шаги оптимизации производительности в облаке, которые не полезны или не нужны в эмулятор вычислений. Кроме того, хотя вложено много усилий в то, чтобы поведение эмулятор вычислений было аналогично поведению в облаке, остаются незначительные различия, которые могут потребовать различных действий во время запуска при работе в эмулятор вычислений и в облаке. Эти различия между эмулятор вычислений и облаком описаны в статье Differences Between the Compute Emulator and Windows Azure.

Эта возможность выполнять различные действия в эмулятор вычислений и в облаке реализуется путем создания переменной среды в файле ServiceDefinition.csdef и проверки этой переменной в задаче запуска.

Для создания переменной среды добавьте раздел Environment и раздел Variable в раздел Startup файла ServiceDefinition.csdef. Элемент Variable должен иметь уникальное имя для переменной среды, которая будет использоваться в задаче запуска. В этом примере переменная среды называется ComputeEmulatorRunning. В разделе Variable файла ServiceDefinition.csdef добавьте элемент RoleInstanceValue с атрибутом xPath, равным "/RoleEnvironment/Deployment/@emulated". Этот атрибут 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