Azure DevOps发布管道部署Azure Function App超时问题求助
Azure DevOps发布Azure Function App时出现connect ETIMEDOUT超时错误的解决方法
问题背景
部署配置:
- 使用复制和归档任务
- Azure Function App部署任务采用ZIP包,额外部署配置为“zip deploy”和“zip deploy with run from package”
- 已配置应用设置
WEBSITE_RUN_FROM_PACKAGE = 1、WEBSITE_WEBDEPLOY_USE_SCM = true
部署触发超时错误,核心错误信息:
##[error]未能将Web包部署到App Service。错误:connect ETIMEDOUT x.x.x.x:443
翻译后的完整部署日志:
1111-01-01T12:48:18.7320311Z ##[section]开始:Azure Function App 部署: XXXXXXXXXXXXXXX 1111-01-01T12:48:18.7434752Z ============================================================================== 1111-01-01T12:48:18.7434920Z 任务 : Azure Functions 部署 1111-01-01T12:48:18.7434992Z 描述 : 更新基于.NET、Python、JavaScript、PowerShell、Java的函数应用 1111-01-01T12:48:18.7435114Z 版本 : 2.218.1 1111-01-01T12:48:18.7435174Z 作者 : Microsoft 公司 1111-01-01T12:48:18.7435265Z 帮助 : <a href="https://aka.ms/azurefunctiontroubleshooting" rel="nofollow noreferrer">https://aka.ms/azurefunctiontroubleshooting</a> 1111-01-01T12:48:18.7435348Z ============================================================================== 1111-01-01T12:48:19.9008284Z 获取到Azure App Service:'XXXXXXXXXXXXXXX'的服务连接详情 1111-01-01T12:48:21.1672101Z (node:2688) [DEP0005] 弃用警告:Buffer()已弃用,建议使用Buffer.alloc()、Buffer.allocUnsafe()或Buffer.from()方法替代。 1111-01-01T12:48:32.5957978Z 尝试更新App Service应用设置。数据:{"WEBSITE_RUN_FROM_PACKAGE":"1"} 1111-01-01T12:48:32.5958428Z 删除App Service应用设置。数据:["WEBSITE_RUN_FROM_ZIP"] 1111-01-01T12:48:32.5959252Z App Service应用设置已存在。 1111-01-01T12:51:10.9128451Z Zip Deploy前验证函数应用的部署包 1111-01-01T13:09:06.0866760Z 已启动使用ZIP Deploy的包部署。 1111-01-01T13:27:01.3376109Z ##[error]未能将Web包部署到App Service。 1111-01-01T13:27:01.3391569Z ##[error]如需进一步调试,请查看Kudu堆栈跟踪URL:https://$XXXXXXXXXXXXXXX:***@XXXXXXXXXXXXXXX.scm.yyyyyyyyyyyyyyyyyyapps.com/api/vfs/LogFiles/kudu/trace 1111-01-01T13:27:01.3393869Z ##[error]错误:错误:未能将Web包部署到App Service。错误:connect ETIMEDOUT x.x.x.x:443 1111-01-01T13:27:02.7308381Z 成功向Application Insight: XXXXXXXXXXXXXXX添加发布注释 1111-01-01T13:27:03.5861517Z App Service应用URL: <a href="https://XXXXXXXXXXXXXXX.yyyyyyyyyyyyyyyyyyapps.com" rel="nofollow noreferrer">https://XXXXXXXXXXXXXXX.yyyyyyyyyyyyyyyyyyapps.com</a> 1111-01-01T13:27:03.6006868Z ##[section]完成: Azure Function App 部署: XXXXXXXXXXXXXXX
解决步骤
检查网络连通性
该错误本质是Azure DevOps代理无法访问Function App的SCM站点对应IP的443端口:- 在代理机器上执行
Test-NetConnection x.x.x.x -Port 443(Windows)或nc -zv x.x.x.x 443(Linux)验证连通性 - 企业内网环境需确认防火墙、VPN规则允许代理机器出站访问该IP的443端口
- 自托管代理需确保机器网络策略未限制Azure服务访问
- 在代理机器上执行
调整部署超时时间
在Azure Function App部署任务的「高级」设置中,将「部署超时」从默认值(如120秒)调整为300秒或更长,适配大体积包或慢网络场景缩减ZIP包体积
在复制和归档任务的「要排除的文件或文件夹」中添加规则,移除不必要的文件:**/node_modules/**, **/bin/Debug/**, **/obj/Debug/**, **/Tests/**, *.log减小包体积可缩短传输时间,降低超时概率
切换部署方式
若zip deploy持续失败,改用存储Blob托管包的方式:- 将ZIP包上传至Azure存储Blob容器,生成带SAS权限的URL
- 将Function App的
WEBSITE_RUN_FROM_PACKAGE设置为该SAS URL
此方式无需从DevOps代理直接传输包到Function App,规避网络连通问题
检查Function App状态
登录Azure门户确认:- Function App处于运行状态
- SCM站点(
https://<function-app-name>.scm.azurewebsites.net)可正常访问 - 资源未超限(CPU、内存使用率在合理范围)
内容的提问来源于stack exchange,提问作者Dinesh
相关产品推荐
相关产品推荐

