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

在Google Cloud Pub/Sub控制台创建Protobuf Schema时遇多消息类型报错

解决Google Cloud Pub/Sub Protobuf Schema多消息类型报错问题

问题原因

Google Cloud Pub/Sub的Protobuf Schema规则明确要求:每个Schema定义只能包含一个顶级消息类型。你最初的代码包含两个顶级消息VideoImpression和VideoImpressionsList,直接触发Too many message types specified in schema definition报错;拆分后跨Schema引用消息类型,由于Pub/Sub不支持跨Schema解析类型,因此出现"VideoImpression" is not defined报错。

解决方案

将VideoImpression定义为VideoImpressionsList的嵌套消息,确保整个Schema仅保留一个顶级消息类型,修改后的代码如下:

syntax = "proto2";

package mypackage;

message VideoImpressionsList {
    // 嵌套定义VideoImpression消息
    message VideoImpression {
        optional string user_id = 1;
        optional string candidate_id = 2;
        optional int64 event_timestamp = 3;
    }
    repeated VideoImpression video_impressions = 1;
}

修改后的Schema既符合Pub/Sub的规则,又能完整保留原有的消息结构,可正常保存。如果业务场景需要单独使用VideoImpression消息,可单独创建一个仅包含该消息的独立Schema,两个Schema各自独立使用即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:41:04