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

跨GCP项目使用Artifact Registry镜像部署App Engine flex报错如何解决

解决方案

1. 定位App Engine Flexible服务账号

你找不到该账号是因为它属于Google托管的服务代理类账号,默认不会展示在项目IAM的主账号列表中,它的格式为:
service-[projectB的项目数字ID]@gae-api-prod.google.com.iam.gserviceaccount.com

你可以执行以下命令获取projectB的数字ID:

gcloud projects describe projectB --format="value(projectNumber)"

如果执行后仍匹配不到对应账号,先在projectB中启用App Engine Flexible Environment API,启用后该服务账号会自动创建,且默认绑定App Engine Flexible Environment Service Agent角色。

2. 配置跨项目镜像访问权限

所有权限都需要配置在镜像所在的projectA的Artifact Registry对应仓库/镜像层级:

  • 给projectB的App Engine默认服务账号(格式为projectB@appspot.gserviceaccount.com)授予roles/artifactregistry.reader角色,你也可以继续使用之前配置的roles/storage.objectViewer,两者对镜像拉取场景等效
  • 给上面找到的projectB的App Engine Flexible服务代理账号授予roles/artifactregistry.reader角色

3. 验证部署

权限配置完成后等待1-2分钟让权限生效,再执行你原来的部署命令即可:

gcloud app deploy --project=projectB --version=test1 --image-url="asia-northeast1-docker.pkg.dev/projectA/default/my-image:latest"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:18:04