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

部署GCP Cloud Functions时遭遇ArtifactRegistry权限错误

排查Gen2 Cloud Functions部署时Artifact Registry缓存权限错误的思路

错误核心

部署Gen2 Cloud Functions时,Cloud Build阶段报错,提示缺少artifactregistry.repositories.downloadArtifacts权限,即使指定的函数服务账号已配置Artifact Registry Administrator角色。

排查步骤

  • 区分构建服务账号和函数运行服务账号:你通过--service-account指定的是函数运行时使用的账号,但Cloud Build执行构建过程用的是项目的Cloud Build默认服务账号:[你的项目编号]@cloudbuild.gserviceaccount.com。需要给这个账号添加Artifact Registry Reader角色,或者直接授予artifactregistry.repositories.downloadArtifacts权限,作用范围可以是项目级或目标gcf-artifacts仓库。
  • 验证权限的作用范围:检查Artifact Registry Administrator角色是否绑定在了正确的资源上——确保该角色是作用在项目级别,或者明确指定了欧洲区(europe-west1)的gcf-artifacts仓库。如果角色只绑定到了其他仓库,会导致权限不覆盖默认的gcf-artifacts仓库。
  • 确认gcf-artifacts仓库存在:登录Artifact Registry控制台,检查欧洲区(europe-west1)是否存在名为gcf-artifacts的Docker类型仓库。如果不存在,手动创建该仓库,Gen2 Cloud Functions依赖此仓库存储构建缓存和镜像。
  • 直接检查仓库的IAM绑定:进入gcf-artifacts仓库的IAM管理页面,确认Cloud Build服务账号(或你使用的构建账号)是否有downloadArtifacts的权限。若没有,手动添加该权限,避免角色继承的延迟或遗漏。
  • 临时禁用构建缓存验证问题:在部署命令中添加--no-build-cache参数,绕过缓存拉取步骤,验证是否是缓存相关的权限问题。修改后的部署命令:
gcloud functions deploy my_cf --entry-point start_process \
--gen2 \
--trigger-http \
--region europe-west1 \
--runtime python310 \
--service-account <service account name>@<project>.iam.gserviceaccount.com \
--no-allow-unauthenticated \
--source=./CloudFunction/ \
--no-build-cache
  • 检查API启用状态:确认项目中已启用Artifact Registry API和Cloud Build API,未启用的API会导致权限类的错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:13:18