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

如何通过跨项目Pub/Sub Subscription触发Cloud Function消费消息

跨项目Pub/Sub订阅触发Cloud Function操作指南

前置检查

你已经确认当前项目可以正常查看跨项目订阅的消息,说明基础跨项目访问权限已经打通,只需完成以下配置即可:


步骤1:配置订阅侧访问权限

  • 首先获取你当前项目中Cloud Function的运行服务账号:
    • 一代云函数默认服务账号格式:service-<当前项目ID>@gcf-admin-robot.iam.gserviceaccount.com
    • 二代云函数默认服务账号格式:<当前项目ID>@appspot.gserviceaccount.com
    • 如果你用了自定义运行服务账号,直接使用自定义账号即可
  • 切换到Pub/Sub订阅所属的另一个项目,进入对应订阅的权限配置页,给上述服务账号授予两个角色:roles/pubsub.subscriber、roles/pubsub.viewer,确保账号有权限拉取消息、提交消费确认。

步骤2:配置Cloud Function触发器

  • 回到当前项目的Cloud Function控制台,新建或编辑你要用来消费消息的云函数
  • 触发器类型选择「Pub/Sub」,订阅来源选择「手动输入订阅资源名称」
  • 按格式填写跨项目订阅的完整资源名:projects/<订阅所属项目ID>/subscriptions/<订阅名称>,注意替换为实际的项目ID和订阅名
  • 按需配置函数的运行时、内存、超时等参数后,直接部署函数即可。

步骤3:功能验证与异常排查

  • 给跨项目订阅关联的Pub/Sub主题发送测试消息,查看云函数的运行日志,确认函数是否被正常触发、消息内容是否正常获取
  • 如果函数未触发,优先排查两个问题:
    • 确认当前订阅为拉取模式,推送模式的订阅无法直接绑定Cloud Function触发器
    • 如果你用的是二代云函数,需要额外在当前项目的云函数权限页,给订阅所属项目的Pub/Sub服务账号(格式为service-<订阅所属项目ID>@gcp-sa-pubsub.iam.gserviceaccount.com)授予roles/cloudfunctions.invoker权限

提示:如果配置后仍有权限报错,可通过Cloud IAM的权限诊断工具,检查对应服务账号的权限授予是否生效。

内容的提问来源于stack exchange,提问作者Javier Muñoz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:15:03