部署Angular应用至Google Cloud遇App Engine镜像权限错误求助
解决App Engine部署时镜像权限错误问题
一、先定位需要授权的两个核心服务账号
打开GCP控制台的IAM页面,找到以下两个账号:
[你的项目ID]@appspot.gserviceaccount.com(App Engine默认服务账号)service-[你的项目ID]@gae-api-prod.google.com.iam.gserviceaccount.com(App Engine灵活环境专属服务账号)
二、给服务账号添加镜像访问权限
根据你的镜像存储位置,给这两个账号添加对应权限:
- 如果镜像存在Artifact Registry:添加
Artifact Registry Reader角色 - 如果镜像存在Cloud Storage:添加
Storage Object Viewer角色
操作步骤:
- 在IAM页面找到目标账号,点击右侧的编辑图标
- 点击「添加另一个角色」,搜索并选中上述角色
- 保存更改
三、检查app.yaml的镜像配置
确认你的app.yaml里的镜像路径正确且服务账号能访问:
- 自定义镜像场景:
image:字段必须指向你项目内有权限的镜像地址,示例:runtime: custom env: flex image: us-docker.pkg.dev/你的项目ID/仓库名/镜像名:标签 - 自动构建场景:确保构建流程生成的镜像所在存储位置,已对上述两个服务账号开放权限
四、额外排查动作
- 用
gcloud auth list检查当前部署用的账号是否拥有App Engine Deployer和(如果是自行构建镜像)Artifact Registry Writer权限 - 执行
gcloud auth application-default login刷新本地权限缓存,再重新运行部署命令
内容的提问来源于stack exchange,提问作者Pax
相关产品推荐
相关产品推荐

