Можно ли передать выходные данные одной задачи PowerShell другой в управлении выпусками?


Вот пример сценария:

  1. Задача "Azure PowerShell" для развертывания шаблона ARM. Все, что делает шаблон ARM, - это создает план обслуживания приложений, веб-приложение и учетную запись хранения.
  2. Задача "развертывание веб-приложения Azure" для развертывания веб-приложения.
  3. Задача Azure PowerShell для обновления конфигурации веб-приложения, содержащая ссылку на ключи хранения, созданные из шаблона ARM.

Как обеспечить третью задачу выводом первой задачи? Есть ли другой способ подойти к этому?

3 2

3 ответа:

Пол еще один способ, которым вы можете достичь этого, - это сделать все 3 в вашей первой задаче (Azure PowerShell) - вы также можете объединить 1 и 3 и оставить 2 отдельно, либо должны работать для вас, используя стандартные "задачи" в VSTS.

Таким образом, на первом этапе рабочего процесса можно создать веб-приложение (et al), обновить конфигурацию и развернуть веб-приложение. Если развертывание веб-приложения в шаблоне нежелательно, можно объединить шаги 1 и 3 в рабочем процессе и выполнить развертывание сайта отдельно. Взять посмотрите на эти примеры, в сочетании они делают то, что вы хотите (я не смог быстро найти ни одного примера):

Https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/WebAppDeployment.json (Здесь показано, как настроить приложение)

Вы можете ссылаться на ключи хранения в том же развертывании, которое создает учетную запись хранения см.: https://github.com/rjmax/ArmExamples/blob/fa4359bd393692bbb07b4460636c5b754191e42d/listKeysSample.json)

Https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/WordpressTemplateWebDeployDependency.json (Здесь показано, как выполнить webdeploy в шаблоне)

Вы можете использовать команды ведения журнала задач в VSTS для "вывода" переменных из одной задачи и чтения их в другой. Первая задача Azure PS в вашем примере может регистрировать выходную переменную, которую позже можно будет прочитать в последней. См. https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md для формата этих команд ведения журнала.

Можно "связать" шаблоны ARM вместе через раздел "выход", чтобы разделить состояние от одного шаблона к другому.

Таким образом, можно указать выходные данные из одного шаблона и либо выбрать эти выходные данные с помощью вызывающего их сценария Powershell, либо связать шаблоны вместе, чтобы они все выполнялись из одного вызова New-AzureRmResourceGroupDeployment. С шаблоном для задачи настройки веб-приложения непосредственно получение выходных данных шаблона развертывания.

Там здесь есть хорошая документация - состояние общего доступа в шаблонах диспетчера ресурсов Azure