Как обновить конфигурацию слота веб-приложения Azure в непрерывной интеграции Visual Studio Online?

Выпуская сборку в VSO, я хотел бы выпустить ее в промежуточном слоте веб-приложения. Я использую NewRelic, поэтому мне нужно остановить промежуточную среду и установить для параметра AlwaysOn значение false перед развертыванием, затем включить его и запустить после развертывания.

Это то, что я делаю, используя задачу Azure CLI перед задачей развертывания:

call azure webapp config set --slot staging Default-Web-WestEurope instanceName  --alwayson false
call azure webapp stop --slot staging Default-Web-WestEurope instanceName

Это хорошо работает, когда я запускаю эти команды в Azure CLI на своем рабочем столе. Но когда я добавляю этот скрипт в задачу Azure CLI на VSO, он работает... но в рабочем слоте.

Это очень раздражает, потому что останавливает производство.

Знаете ли вы, как обновить конфигурацию slot WebApp в непрерывной интеграции VSO?


person Raph    schedule 07.12.2016    source источник
comment
Итак, вы говорите, что команда azure cli не учитывает параметр слота при запуске из агента?   -  person Chris Patterson    schedule 07.12.2016
comment
Пробовали ли вы это visualstudio.com/en- нас/docs/релиз/примеры/лазурь/   -  person forester123    schedule 08.12.2016
comment
@ChrisPatterson да, я думаю, это огромная ошибка, но она находится в предварительном просмотре, так что ...   -  person Raph    schedule 08.12.2016
comment
@ Forester123 Forester123 Я еще не пробовал задачу Powershell, я буду с принятым ответом!   -  person Raph    schedule 08.12.2016
comment
@Raph, не могли бы вы сказать мне, какую версию azure cli вы используете локально? Я не понимаю, как задача может вызвать это, и мне любопытно узнать, связана ли проблема с версией CLI, установленной на виртуальной машине сборки.   -  person Chris Patterson    schedule 08.12.2016
comment
@КрисПаттерсон 0.10.7   -  person Raph    schedule 09.12.2016


Ответы (1)


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

azure webapp stop --slot <slot name> <resource-group-name> <your-webapp-name> -vv

Вот журнал сборки задачи Azure CLI из моего VSO:

Примечание. Так как задача Azure CLI находится в предварительной версии. В качестве обходного пути вы можете использовать задачу Azure Powershell, чтобы остановить/запустить слот веб-приложения и настроить параметр AlwaysOn, выполнив следующие действия:

<сильный>1. Добавьте задачу AZURE Powershell

<сильный>2. Добавьте следующий скрипт powershell и отправьте его в исходный репозиторий

1) Остановите слот веб-приложения с помощью Stop-AzureRmWebAppSlot

stop-azurermwebappslot -name "<webapp-name>" -slot "<webapp-slot-name>" -resourcegroupname "<resourcegroup-name>"

2) Настройте AlwaysOn с помощью Set- AzureRmResource

Set-AzureRmResource -resourcename "<webapp-name>\slots\<webapp-slot-name>/web" -ResourceGroupName "<resourcegroup-name>" -ResourceType "Microsoft.Web/sites/config" -ApiVersion 2015-08-01 -propertyobject @{alwaysOn = $false;} -v -force

<сильный>3. Настройте свою задачу

Затем мы могли увидеть следующий журнал сборки:

Кроме того, я обнаружил аналогичную проблему с вариантами остановки/запуска. веб-приложение во время развертывания веб-приложения Azure, вы можете обратиться к нему.

person Bruce Chen    schedule 08.12.2016
comment
Благодарю вас ! Я буду следовать вашим инструкциям, используя задачу Azure Powershell. Не могли бы вы сообщить об этой ошибке Azure CLI Preview командам VSO? Я пытался, но там нет ответа: connect.microsoft.com/VisualStudio/feedback/details/3113958/ - person Raph; 08.12.2016
comment
Я подтвердил эту проблему с членами команды VSO. Он предложил вам сообщить об этой проблеме на github о проблемах Microsoft/vsts-tasks для быстрый ответ. - person Bruce Chen; 09.12.2016