我们使用 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 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
:
所以,我们不需要停止它,只需等待交换操作成功即可。
当您提交交换槽请求时,您将获得 HttpStatus 202 代码。在门户上,当您点击交换按钮时,您会发现浏览器一直在请求位置url以获取交换状态。
至于什么时候结束,我们可以通过轮询来查看交换操作。
如果兑换操作时间过长,建议提出支持票并请工程师检查原因。
您可以使用
AzureAppServiceManage
任务。
使用此任务可以启动、停止、重新启动、插槽交换、与预览交换、安装站点扩展或启用对 Azure 应用服务的连续监视。
当您使用rest api交换槽时,您可以检查响应头中的
location
。
当您提交交换槽请求时,您将获得 HttpStatus
202
代码。在门户上,当您点击交换按钮时,您会发现浏览器一直在请求位置url以获取交换状态。