1

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

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

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

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

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

有办法吗?

4

2 回答 2

1

请尝试在 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在此处输入图像描述

于 2021-01-12T07:09:14.867 回答
0

更新

如果在插槽交换后目标插槽(例如,生产插槽)中发生任何错误,则通过立即交换相同的两个插槽将插槽恢复到交换前的状态

在此处输入图像描述

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

当您提交交换槽请求时,您将获得 HttpStatus 202 代码。在portal上,当你点击swap按钮时,你会发现浏览器一直在请求location的url来获取swap的状态。

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

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

以前的

您可以使用AzureAppServiceManage任务。

Azure 应用服务管理任务

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

提示

当您使用 rest api 交换插槽时,您可以检查location响应标头。

在此处输入图像描述

当您提交交换槽请求时,您将获得 HttpStatus202代码。在portal上,当你点击swap按钮时,你会发现浏览器一直在请求location的url来获取swap的状态。

于 2021-01-08T02:54:40.453 回答