首次部署Google App Engine应用遇Error 13:Deployment Manager操作失败
gcloud app deploy时出现的ERROR: (gcloud.app.deploy) Error Response: [13]问题 刚看到你首次部署App Engine时碰到这个错误,我之前部署也遇到过类似的防火墙资源404问题,给你几个排查和解决的方向:
首先拆解下错误核心:部署管理器在创建/操作compute.v1.firewall类型的资源时返回了404,说明找不到指定的防火墙资源,或者没有权限操作相关资源。
试试下面这些步骤:
先确认当前gcloud关联的项目是否正确:
运行gcloud config get-value project,输出的项目ID是不是你要部署的那个?如果不对,用gcloud config set project YOUR_PROJECT_ID切换到正确项目。检查项目的防火墙规则是否完整:
登录Google Cloud控制台,进入VPC网络 > 防火墙页面,确认有没有App Engine需要的默认规则——比如允许HTTP(80端口)、HTTPS(443端口)入站的规则,还有App Engine服务之间通信的规则。如果缺失,要么手动创建对应的规则,要么确保部署账号有足够权限让部署工具自动生成这些规则。验证账号权限:
去IAM与管理员 > IAM页面,查看你当前部署用的账号有没有Compute Network Admin或者App Engine Deployer角色。如果权限不足,让项目管理员给你添加对应的角色,没有创建/修改防火墙的权限会导致部署失败。重置gcloud本地配置:
有时候本地缓存的配置出问题,运行gcloud init重新选择项目和登录账号,完成初始化后再尝试gcloud app deploy。查看完整错误详情:
如果上面的方法都没用,用错误里的操作ID查看详细日志:gcloud deployment-manager operations describe operation-1522364367335-5689513556e59-0732922b-1662dc1e
这个命令会返回更完整的404错误信息,比如具体是哪个防火墙资源找不到,或者是不是引用了不存在的VPC网络,能帮你精准定位问题。
内容的提问来源于stack exchange,提问作者Ilya

