我在 DevOps 环境中创建了两个管道,第一个是“构建”管道,当我提交到开发分支时会触发它。该管道成功运行并创建了我的应用程序(NodeJs + Angular)的工件。这有效,这里没什么特别的。
创建工件后,会触发“发布”管道,该管道仅下载工件,然后使用 ZIP 部署来部署它:
******************************************************************************
Starting: Deploy Azure App Service
******************************************************************************
==============================================================================
Task : Azure App Service deploy
Description : Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby
Version : 4.240.2
Author : Microsoft Corporation
Help : https://aka.ms/azureappservicetroubleshooting
==============================================================================
Got service connection details for Azure App Service:'app-contoso-dev'
Package deployment using ZIP Deploy initiated.
当我查看应用程序服务(部署中心页面)的日志时,我可以看到部署已执行并在大约 20 分钟后成功。我可以确认一切正常并且已正确更新。
我在部署中心页面的日志中看到的最后一条消息是:
Deployment successful. deployer = VSTS_ZIP_DEPLOY deploymentPath = ZipDeploy. Extract zip.
`
但是,我的代理似乎没有收到任何部署成功的反馈,导致大约 6 小时后失败! (我使用自托管代理)。
6 小时 12 分钟后,我收到此错误:
We stopped hearing from agent Hosted Agent. Verify the agent machine is running
and has a healthy network connection. Anything that terminates an agent process,
starves it for CPU, or blocks its network access can cause this error.
我已经在寻找解决方案,但我找不到解决方案,我也无法弄清楚代理应该如何知道部署成功。
我们不再收到代理托管代理的消息。验证代理机器正在运行 并拥有健康的网络连接。任何终止代理进程的事情, 使其 CPU 不足或阻止其网络访问可能会导致此错误。
这是代理进程意外终止时的常见错误。
当您使用
self-hosted
代理运行管道时,CPU,RAM,磁盘可能不够,机器上发生网络问题,或者代理进程被其他服务终止,这将导致从代理到DevOps的连接丢失,然后就会报告错误。另外,您可以对作业进行超时设置,并在 6 小时后报告错误。
您需要检查管道调试日志,以及代理上的两个诊断日志(Worker 诊断日志 和 Agent 诊断日志)以查找错误详细信息。
您可以创建一个具有不同网络和更好硬件的新代理进行检查。