Принудительная остановка замены слота развертывания службы приложений Azure

Мы используем Azure DevOps для развертывания в промежуточном слоте, а затем заменяем его производственным. Когда возникает проблема с заменой, он будет продолжать попытки в течение почти 30 минут.

Поэтому я хотел бы установить тайм-аут для задачи подкачки, но если я это сделаю, она остановит задачу в DevOps и оставит процесс, происходящий в Azure.

Мне нужен способ принудительно остановить процесс с помощью задачи CLI, API, PowerShell или DevOps.

В Azure CLI, похоже, нет ничего, что Kudu API может удалять развертывания, но не пытается их остановить (https://github.com/projectkudu/kudu/wiki/REST-API#deployment)

Я читал, что вы можете остановить процесс, но, используя службу приложений контейнеров Linux, я не вижу этой опции. Веб-сайты Azure: как отменить развертывание?

Есть способ?


comment
Может ли решение в этом билет решить вашу проблему?   -  person Walter    schedule 11.01.2021
comment
@ WalterQian-MSFT Я не думаю, что это будет, поскольку это будет ограничиваться командами Start / Stop и т. Д., Которые при запуске Stop я получаю сообщение об ошибке, что операция все еще выполняется. Кроме того, команда Stop останавливает слот, чего я не хочу делать. Я просто хочу принудительно отменить развертывание.   -  person Chris Pateman    schedule 11.01.2021


Ответы (2)


Обновлять

В случае возникновения каких-либо ошибок в целевом слоте (например, производственном слоте) после замены слотов восстановите слоты до их состояния до замены, немедленно заменив те же два слота местами.

введите описание изображения здесь

Итак, нам не нужно останавливать его, просто подождите, пока операция свопинга завершится успешно.

Когда вы отправляете запрос слота подкачки, вы получаете код HttpStatus 202. На портале, когда вы нажмете кнопку обмена, вы обнаружите, что браузер запрашивал URL-адрес местоположения, чтобы получить статус обмена.

Что касается того, когда он закончится, мы можем проверить операцию свопинга с помощью опроса.

Если время операции подкачки слишком велико, рекомендуется подать заявку в службу поддержки и попросить инженера выяснить причину.

Привилегированный

Вы можете использовать AzureAppServiceManage задачу.

Задача управления службой приложений Azure

Используйте эту задачу для запуска, остановки, перезапуска, смены слотов, обмена с предварительным просмотром, установки расширений сайта или включения непрерывного мониторинга для службы приложений Azure.

подсказки

Когда вы используете rest api для замены слота, вы можете проверить location в заголовке ответа.

введите описание изображения здесь

При отправке запроса слота подкачки вы получите код HttpStatus 202. На портале, когда вы нажмете кнопку обмена, вы обнаружите, что браузер запрашивал URL-адрес местоположения, чтобы получить статус обмена.

person Jason Pan    schedule 08.01.2021
comment
Это может запустить обмен, остановить службу приложения, но не может остановить обмен. Даже когда вы заходите на портал и выбираете «Полная замена», происходит ошибка, связанная с другой операцией. Мне нужен способ прерывания, это может привести к отмене подкачки - person Chris Pateman; 08.01.2021
comment
Спасибо за обновление. Однако цель состоит в том, чтобы не ждать, пока операция завершится неудачно. Это может ждать долго, поэтому я хочу его прервать. - person Chris Pateman; 08.01.2021

Попробуйте использовать следующую команду в задаче Azure PowerShell, чтобы отменить ожидающий своп:

Invoke-AzResourceAction -ResourceGroupName [resource group name] -ResourceType Microsoft.Web/sites/slots -ResourceName [app name]/[slot name] -Action resetSlotConfig -ApiVersion 2015-07-01

Вот документ и мой образец, я добавил -Force -Confirm:$false в конце команды:  введите описание изображения здесь

person Walter    schedule 12.01.2021
comment
Здравствуйте, я все еще получаю сообщение «Невозможно изменить этот сайт, потому что выполняется другая операция». `` Connect-AzAccount Set-AzContext -Subscription *** Invoke-AzResourceAction -ResourceGroupName $ rgName -ResourceType Microsoft.Web / sites / slots -ResourceName $ appName / $ slotName -Action resetSlotConfig -ApiVersion 2015-07-01 -Force - Подтвердить: $ false `` '' - person Chris Pateman; 12.01.2021