如何在无组织架构下限制Artifact Registry存储区域?
实现Cloud Build对接单区域Artifact Registry存储构建工件
完全可以实现,不需要依赖组织级政策,直接在项目内完成配置即可,具体步骤如下:
1. 创建单区域Artifact Registry仓库
- 使用gcloud命令创建(以Docker仓库为例):
把gcloud artifacts repositories create 你的仓库名 --repository-format=docker --location=目标单区域 --description="单区域构建工件仓库"你的仓库名替换为自定义名称,目标单区域换成具体单区域(如us-central1、asia-east1)。 - 也可通过GCP控制台操作:进入Artifact Registry页面,点击「创建仓库」,选择对应仓库格式、单区域位置,填写名称后完成创建。
2. 配置Cloud Build指向单区域仓库
修改你的cloudbuild.yaml构建配置文件,在镜像构建和推送步骤中指定单区域仓库的地址:
steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', '目标单区域-docker.pkg.dev/你的项目ID/你的仓库名/镜像名:版本标签', '.'] - name: 'gcr.io/cloud-builders/docker' args: ['push', '目标单区域-docker.pkg.dev/你的项目ID/你的仓库名/镜像名:版本标签']
将其中的目标单区域、你的项目ID、你的仓库名、镜像名、版本标签替换为实际信息。
如果使用Cloud Build触发器关联代码仓库,确保触发器绑定的构建配置文件是上述修改后的cloudbuild.yaml。
3. 配置Cloud Build服务账号权限
给Cloud Build默认服务账号添加Artifact Registry写入权限,确保它能推送工件至单区域仓库:
gcloud projects add-iam-policy-binding 你的项目ID --member="serviceAccount:你的项目编号@cloudbuild.gserviceaccount.com" --role="roles/artifactregistry.writer"
你的项目编号可通过gcloud projects describe 你的项目ID --format='value(projectNumber)'命令获取。
补充说明
无需依赖组织级存储区域限制政策,通过上述项目内的配置即可让Cloud Build将构建工件直接存储到单区域Artifact Registry,避免多区域存储带来的流量复制费用。
内容的提问来源于stack exchange,提问作者sygi
相关产品推荐
相关产品推荐

