如何在GCP VPC内无需NAT使用Pub/Sub推送和拉取订阅?
GCP VPC内无需NAT使用Pub/Sub推送与拉取订阅的方案
拉取订阅:用私有Google Access即可实现
- 给VPC子网开启私有Google访问,开启后VPC内无公网IP的客户端(比如VM)就能直接通过Google私有IP范围访问Pub/Sub服务,不用走NAT。
- 不用额外创建端点,直接用标准的Pub/Sub SDK或
gcloud命令就能拉取消息,比如在无公网IP的VM上执行gcloud pubsub subscriptions pull <你的订阅名>,能正常拉取就说明配置生效。
推送订阅:借助Private Service Connect(PSC)实现
推送是Pub/Sub主动给你的VPC内服务发消息,默认需要服务暴露公网,要绕开NAT的话用PSC的服务附件:
- 创建PSC端点,把Pub/Sub的官方服务附件关联到你的VPC子网,这样Pub/Sub就能通过私有IP直接访问你VPC内的推送目标(比如内部VM、Cloud Run内部服务、内部HTTP负载均衡)。
- 配置推送订阅时,把目标地址设为VPC内的私有服务地址,同时给Pub/Sub的服务账号配置访问该目标的权限。
- 如果用Cloud Run或Cloud Functions做推送目标,要给它们配置VPC连接器,或者设为内部专属服务,配合PSC完成私有网络内的推送。
关键配置注意事项
- 子网必须开启私有Google访问,满足拉取场景的需求。
- PSC端点要正确关联Pub/Sub的服务附件,确保推送流量能进入VPC。
- 防火墙规则要放行:
- 客户端到Pub/Sub私有IP的443端口出站流量。
- Pub/Sub到VPC内推送目标对应端口的入站流量(比如80/443)。
内容的提问来源于stack exchange,提问作者Abhinav
相关产品推荐
相关产品推荐

