You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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托管包的方式:

    1. 将ZIP包上传至Azure存储Blob容器,生成带SAS权限的URL
    2. 将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:37:57