无效的 Protocol Buffer 模式。尚未加载“google/protobuf/any.proto”导入:GCP/Pub-Sub。

5

我是新手,正在尝试使用GCP。我正在尝试使用protobuf定义模式来使用Pub/Sub服务。

模式:

syntax = "proto3";

import "google/protobuf/any.proto";

message Endorsement {
  string endorserId=1;
  google.protobuf.Any data = 2;
  string signature=3;
  bool isVerified=4;
}

message TransactionPayload {
  string policyId =1;
  string txnId =2;
  repeated Endorsement endorsements=3;
}

验证此模式失败并出现错误。

无效的Protocol Buffer模式。未加载“google/protobuf/any.proto”导入。

enter image description here

我需要使用google.protobuf.Any,是否有其他方法可以使用/定义它?


你如何验证这个?你使用哪个API? - vitooh
我正在使用GCP控制台的功能,通过GCP门户(Web UI)定义和验证模式,参考附加的截图。 - Nitish Bhardwaj
1个回答

4

目前,Pub/Sub的模式支持不支持导入。您必须在消息类型的定义中自己定义消息类型。还请注意,当前的模式支持仅允许定义单个消息顶级消息类型,因此您还必须将 Endorsement 定义嵌入到 TransactionPayload 定义中。


哦,那很遗憾。这迫使我转向其他的消息解决方案。感谢您的支持。您能否在答案中添加一些参考资料,指出当前pub/sub支持/不支持的事项? - Nitish Bhardwaj
2
事实证明,这个限制尚未在文档中提到。我们会确保将其添加到https://cloud.google.com/pubsub/docs/schemas中。 - Kamal Aboul-Hosn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接