强制停止 Azure 应用服务部署槽交换

问题描述 投票:0回答:2

我们使用 Azure DevOps 部署到暂存槽,然后与生产环境交换。 当交换出现问题时,它将继续尝试近 30 分钟。

因此,我想对交换任务设置超时,但如果我这样做,它将停止 DevOps 中的任务并让该过程在 Azure 中进行。

我想要一种通过 CLI、API、PowerShell 或 DevOps 任务强制停止进程的方法。

Azure CLI 似乎没有任何东西 Kudu API 可以删除部署,但不会阻止它们 (https://github.com/projectkudu/kudu/wiki/REST-API#deployment)

我读到您可以停止进程,但使用 Linux 容器应用服务时,我看不到该选项。 Azure 网站:如何取消部署?

有办法吗?

azure-devops azure-web-app-service azure-deployment-slots azure-web-app-for-containers
2个回答
0
投票

请尝试在 Azure PowerShell 任务中使用以下命令来取消待处理的交换:

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

这是 document 和我的示例,我在命令末尾添加了

-Force -Confirm:$false
enter image description here


0
投票

更新

如果槽位交换后目标槽位(例如生产槽位)出现任何错误,请立即通过交换相同的两个槽位来将槽位恢复到交换前的状态

enter image description here

所以,我们不需要停止它,只需等待交换操作成功即可。

当您提交交换槽请求时,您将获得 HttpStatus 202 代码。在门户上,当您点击交换按钮时,您会发现浏览器一直在请求位置url以获取交换状态。

至于什么时候结束,我们可以通过轮询来查看交换操作。

如果兑换操作时间过长,建议提出支持票并请工程师检查原因。

上一页

您可以使用

AzureAppServiceManage
任务。

Azure 应用服务管理任务

使用此任务可以启动、停止、重新启动、插槽交换、与预览交换、安装站点扩展或启用对 Azure 应用服务的连续监视。

小贴士

当您使用rest api交换槽时,您可以检查响应头中的

location

enter image description here

当您提交交换槽请求时,您将获得 HttpStatus

202
代码。在门户上,当您点击交换按钮时,您会发现浏览器一直在请求位置url以获取交换状态。

© www.soinside.com 2019 - 2024. All rights reserved.