保存架构时出现“架构定义中指定的消息类型过多”

Thi*_*ork 1 schema protocol-buffers google-cloud-platform google-cloud-pubsub

我想在 google cloud pub/sub 控制台中创建这个 protobuf 架构。

我有一个本地脚本,我在其中使用 protobuf 成功序列化和反序列化数据。

syntax = "proto2";

package mypackage;

message VideoImpression {
    optional string user_id = 1;
    optional string candidate_id = 2;
    optional int64 event_timestamp = 3;
}

message VideoImpressionsList {
    repeated VideoImpression video_impressions = 1;
}
Run Code Online (Sandbox Code Playgroud)

当我保存架构时,出现此错误: Too many message types specified in schema definition.

我尝试将两条消息拆分为单独的模式定义,但随后它会抱怨,例如在保存消息 VideoImpressionsList 时: "VideoImpression" is not defined.

如何使 pub/sub 接受上面定义的两种消息类型的模式?

谢谢你的帮助

Kam*_*osn 5

如果您想在另一种消息类型中使用一种消息类型,则应该在另一种消息类型中定义一种消息类型,如下所示:

syntax = "proto2";

package mypackage;

message VideoImpressionsList {
  message VideoImpression {
    optional string user_id = 1;
    optional string candidate_id = 2;
    optional int64 event_timestamp = 3;
  }
  repeated VideoImpression video_impressions = 1;
}
Run Code Online (Sandbox Code Playgroud)