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

执行gcloud app deploy成功但App Engine代码未更新的原因

App Engine 执行gcloud app deploy提示成功但代码未更新的常见排查方向
  • 流量未切换到新版本
    这是最高发的原因:默认新版gcloud部署会自动切100%流量到新版本,但如果你之前手动调过流量拆分规则、部署时带了--no-promote参数,或是用的旧版CLI,新版本部署完只会停在版本列表里,不会接任何流量。直接去App Engine控制台的「版本」页看刚打的新版本流量占比,要是显示0,手动把100%流量切过去就行,下次部署加--promote参数就会自动切流。
  • 部署上传的文件本身不是最新代码
    别觉得这个问题低级,至少三分之一的人踩过这个坑:如果是需要构建的Node.js项目(比如前端项目、TS写的后端),改完源码忘了跑npm run build,dist/build目录里还是旧产物,gcloud只会上传你当前目录下的现有文件,传上去的当然是旧代码。另外记得查下.gcloudignore和app.yaml的handlers配置,别不小心把存新代码的目录加到忽略上传列表里了。
  • 命中多层缓存
    缓存问题也很常见:先按Ctrl+F5硬刷,或者开无痕模式访问,排除浏览器本地缓存的问题;如果你的App Engine前面挂了Cloud CDN或者其他负载均衡,记得去刷下CDN缓存,CDN节点存了旧内容的话源站更新了也没用;另外App Engine本身对静态资源默认有10分钟的缓存周期,刚更完静态资源短时间访问到旧内容是正常的。
  • 部署目标不匹配
    查下你当前gcloud的上下文对不对,执行gcloud config list看激活的项目是不是你要部署的目标项目,控制台切了项目不代表CLI的上下文也跟着切了。如果你的应用有多个服务,部署的时候记得加--service=你的服务名,不然很容易把代码部署到同项目下的其他服务里,你访问原地址当然看不到更新。稳妥点的话每次部署都明确带上--project=目标项目ID --service=目标服务名参数,不会错。
  • 新版本实例未通过健康检查被自动回滚
    别信deploy命令的成功提示,那个提示只代表文件上传完了、版本资源建好了,根本不代表新版本能正常跑。如果新版本启动时报错、健康检查一直不通过,App Engine会自动把流量切回之前能正常跑的旧版本,你访问到的自然还是旧代码。直接去日志浏览器筛刚部署的新版本的实例日志,看启动阶段有没有报错,再去版本页看新版本的实例是不是正常就绪、健康检查有没有过。
  • 柔性环境实例切换延迟
    如果你用的是App Engine柔性环境,别刚看到部署成功就立刻访问,柔性环境新实例启动、旧实例连接排空要1~3分钟,刚部署完立刻访问大概率命中正在下线的旧实例,等个两三分钟再试就行。

内容的提问来源于stack exchange,提问作者Yves-Marie Ip

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:48:19