能否在Google Cloud Console修改已部署App Engine代码及yaml配置以升级Node.js
核心结论
- 不支持在Google Cloud Console中直接修改已部署上线的App Engine应用的源代码与对应的yaml配置文件,这点和Cloud Functions的Console操作逻辑完全不一样。
为什么App Engine没有Cloud Functions那样的在线编辑能力
- Cloud Functions本身是轻量化的事件驱动计算服务,产品设计上就内置了云端内联编辑器,支持直接在控制台改代码、调配置、重新发布
- App Engine是面向全量Web应用的托管平台,从最初版本就要求所有变更都必须以「完整应用版本」为单位推送,Cloud Console只负责处理部署完成后的运行态操作(比如看日志、调流量、删旧版本),从来没开放过源码在线编辑、配置直接改了就生效的入口
你在Console里能碰到的App Engine相关功能边界
- 在每个App Engine服务的版本详情页,你可以查看对应版本的打包文件列表、内置的app.yaml配置内容,甚至可以把整个版本的代码包下载到本地
- 但这些应用详情页面上没有在线编辑、保存、直接触发重新部署的按钮;哪怕你通过Cloud Shell打开代码目录修改内容,本质也是走命令行部署流程,不是直接编辑已经上线的版本内容
适配Node.js 10以上版本运行时的具体操作
- 从你之前部署时关联的代码仓库拉取线上版本的源码,或者从App Engine版本详情页下载当前运行的代码包到本地
- 打开项目根目录下的
app.yaml配置,把原来指定的runtime: nodejs8改成你需要的受支持高版本LTS(比如当前长期支持的Node.js 20,不要选已弃用的版本号) - 本地跑一遍兼容性测试,把代码里用到的Node.js 8专属过期API、不兼容的语法做调整,同步更新
package.json里的依赖版本 - 本地执行
gcloud app deploy把新的版本推到云端,等部署完成后,就可以回Console把线上流量逐步切到新版本上,验证没问题就可以把原来跑Node.js 8的旧版本删掉
内容的提问来源于stack exchange,提问作者Learn2Code
相关产品推荐
相关产品推荐

