如何在Cloud Build YAML中自动配置Cloud Run修订版专属URL
自动为Cloud Run修订版生成专属URL(基于PR编号/Commit SHA)
核心思路
通过在Cloud Build的部署命令中添加--revision-suffix参数,结合Cloud Build自动注入的GitHub相关环境变量(PR编号、Commit SHA),为每个Cloud Run修订版生成带唯一标识的专属URL,无需手动配置。
修改Cloud Build YAML配置
根据你的触发场景(PR触发/代码推送触发),选择以下两种配置方式:
场景1:PR触发(用PR编号作为URL标识)
修改部署步骤,添加--revision-suffix参数指定PR编号作为后缀:
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' args: - 'gcloud' - 'run' - 'deploy' - '你的Cloud Run服务名' - '--image' - 'gcr.io/$PROJECT_ID/你的镜像名:$COMMIT_SHA' - '--region' - '你的部署区域(如us-central1)' - '--revision-suffix' - 'pr-$_PR_NUMBER' - '--allow-unauthenticated' # 根据实际需求决定是否开启公开访问
$_PR_NUMBER是Cloud Build针对GitHub PR触发器自动注入的环境变量,对应当前PR的编号。- 部署后,修订版URL格式:
https://<服务名>-pr-<PR编号>-<随机哈希>-<区域>.run.app
场景2:代码推送触发(用短Commit SHA作为URL标识)
通过Shell脚本截取Commit SHA的前7位作为后缀:
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: - '-c' - | # 截取Commit SHA前7位作为短标识 SHORT_SHA=${COMMIT_SHA::7} # 部署Cloud Run服务并指定修订版后缀 gcloud run deploy 你的Cloud Run服务名 \ --image gcr.io/$PROJECT_ID/你的镜像名:$COMMIT_SHA \ --region 你的部署区域 \ --revision-suffix sha-$SHORT_SHA \ --allow-unauthenticated
COMMIT_SHA是Cloud Build自动注入的完整提交哈希,前7位足够保证唯一性。- 部署后,修订版URL格式:
https://<服务名>-sha-<短SHA>-<随机哈希>-<区域>.run.app
权限验证
确保Cloud Build使用的服务账号拥有roles/run.admin(Cloud Run管理员)角色,以及访问镜像仓库(如Artifact Registry)的必要权限。
验证部署结果
提交PR或推送代码触发Cloud Build后:
- 查看Cloud Build日志,确认部署命令执行成功。
- 进入Cloud Run控制台的「修订版」列表,找到对应修订版,检查其自动生成的URL是否包含指定的PR编号或短SHA标识。
内容的提问来源于stack exchange,提问作者Mustapha Khial
相关产品推荐
相关产品推荐

