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

Azure容器注册表az acr build命令超时并报404 BlobNotFound错误

Azure ACR Build 突发 BlobNotFound 404 错误的排查方案

问题重现

执行持续运行数月的ACR构建命令:

az acr build -t [TAG] --registry [CONTAINER REGISTRY NAME] --agent-pool [AGENT POOL NAME] [SOURCE]

多次返回以下错误并最终超时:

HTTP status code=404, Exception=The specified blob does not exist. ErrorCode: BlobNotFound

开启--debug后可见:前期REST调用正常,构建调度POST请求返回200且代理已触发,但在获取日志SAS URL后,持续出现上述404错误直至超时。

可能原因

  • 自定义代理池关联存储异常:代理池依赖的存储账户中,acr-build-logs容器或对应构建日志blob被误删、权限变更,或存储账户本身故障,导致服务端无法找到日志文件。
  • ACR构建服务链路中断:ACR服务端在调度构建后,日志生成/存储链路出现临时故障,比如SAS URL生成路径错误、日志写入存储失败。
  • 代理池节点本地/网络问题:代理节点无法上传构建日志到存储,比如节点网络不通存储账户、本地临时存储满导致日志无法生成。
  • 存储生命周期/软删除规则影响:存储账户的生命周期规则提前清理了日志blob,或软删除状态下原SAS URL无法访问已删除的blob。

排查方向

1. 检查代理池关联的存储账户

  • 登录Azure门户,进入目标ACR的代理池配置页面,查看代理池绑定的存储账户信息。
  • 进入该存储账户,检查acr-build-logs容器是否存在,是否有对应构建任务的blob文件。
  • 验证权限:确保ACR服务主体、代理池托管身份(若启用)拥有该存储账户的Blob Contributor权限。

2. 排查代理池节点状态

  • 执行命令查看节点健康状态:
    az acr agent-pool show --name [AGENT POOL NAME] --registry [CONTAINER REGISTRY NAME]
    
  • 若为VMSS类型代理池,登录节点检查:
    • 网络连通性:测试节点到存储账户端点的网络访问(如curl <存储账户Blob端点>)。
    • 本地存储:检查临时目录(如/tmp)是否已满,是否影响日志写入。

3. 验证ACR服务与默认代理池

  • 检查所在Azure区域的ACR服务状态,确认无服务中断或公告。
  • 切换到ACR默认代理池重新执行构建命令,若能正常运行,说明问题集中在自定义代理池的配置或关联资源。

4. 检查存储账户的规则设置

  • 查看存储账户的生命周期管理规则,确认是否存在自动删除acr-build-logs容器文件的规则,且规则时间范围是否合理。
  • 检查存储账户的软删除设置,若近期有删除操作,尝试恢复软删除的blob后重新执行构建。

5. 提取详细日志信息

  • 执行构建命令时添加--logs-only参数,尝试直接拉取日志:
    az acr build -t [TAG] --registry [CONTAINER REGISTRY NAME] --agent-pool [AGENT POOL NAME] [SOURCE] --logs-only
    
  • 登录代理节点查看系统日志(如Linux节点的/var/log/syslog),排查构建过程中的本地报错。

内容的提问来源于stack exchange,提问作者Chanandler Bong

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:22:45