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

无法为GCP Pub/Sub创建推送订阅以触发Cloud Build

解决GCP恢复项目中Pub/Sub推送订阅创建失败问题

排查与修复步骤

  • 检查Cloud Build服务账号权限
    你有项目所有者权限,但Pub/Sub推送订阅依赖Cloud Build的专用服务账号(service-<PROJECT_NUMBER>@gcp-sa-cloudbuild.iam.gserviceaccount.com)。确认该账号已被授予roles/pubsub.subscriber角色,同时确保Pub/Sub服务有权调用这个账号。
  • 修正推送端点格式
    不要直接复制生产环境的完整端点,低环境的rpc://端点需要匹配当前项目信息,正确格式应为:rpc://<LOW_ENV_PROJECT_NAME>:CloudBuildPushEndpoint:gslb:google.pubsub.v1.cloudbuildpushendpoint,替换<LOW_ENV_PROJECT_NAME>为你的低环境项目名称。
  • 确认服务启用状态
    恢复标记删除的项目后,部分服务可能默认未启用。进入GCP控制台的服务库,检查Pub/Sub和Cloud Build服务是否处于已启用状态,若未启用则先启用。
  • 核对IAM政策
    对比生产环境和低环境的Pub/Sub主题IAM设置:
    • 确保主题允许Cloud Build服务账号发布消息(如果触发器需要从主题接收消息)
    • 恢复后的项目可能存在IAM缓存延迟,等待5-10分钟后再尝试创建订阅,避免权限同步不及时的问题。
  • 使用gcloud命令行创建
    控制台UI可能存在隐藏问题,用命令行创建能获取更详细的报错信息,执行以下命令:
    gcloud pubsub subscriptions create <SUBSCRIPTION_NAME> \
      --topic=<TOPIC_NAME> \
      --push-endpoint=rpc://<LOW_ENV_PROJECT_NAME>:CloudBuildPushEndpoint:gslb:google.pubsub.v1.cloudbuildpushendpoint \
      --push-auth-service-account=service-<PROJECT_NUMBER>@gcp-sa-cloudbuild.iam.gserviceaccount.com
    
    替换命令中的占位符为低环境项目的实际值,根据返回的报错信息定位具体问题。
  • 验证Cloud Build触发器配置
    确认低环境的Cloud Build触发器已正确创建,且绑定的主题与你要创建订阅的主题一致,避免旧的残留配置干扰订阅创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 08:03:23