Java 获取发布/订阅消息';使用Apache Beam从PubSubIO获取的消息ID字段

Java 获取发布/订阅消息';使用Apache Beam从PubSubIO获取的消息ID字段,java,google-cloud-dataflow,apache-beam,google-cloud-pubsub,Java,Google Cloud Dataflow,Apache Beam,Google Cloud Pubsub,在使用PubSubIO Beam源读取消息后,是否可能在DoFn中以某种方式获取发布/订阅消息的messageId字段 我需要发布/订阅服务分配的默认id。我想记录它以进行调试 对唯一id使用自定义属性和withIdAttribute()方法对我来说是不可能的,因为在这种情况下我对发布者没有影响 我使用数据流Java SDK的2.2.0版本 出于调试目的,您可以使用 它创建了一个消息的快照,您可以在需要时进行回放。支持从Beam v2.16.0开始。要启用它,请在管道设置中将.readMessa

在使用PubSubIO Beam源读取消息后,是否可能在DoFn中以某种方式获取发布/订阅消息的messageId字段

我需要发布/订阅服务分配的默认id。我想记录它以进行调试

对唯一id使用自定义属性和withIdAttribute()方法对我来说是不可能的,因为在这种情况下我对发布者没有影响


我使用数据流Java SDK的2.2.0版本

出于调试目的,您可以使用


它创建了一个消息的快照,您可以在需要时进行回放。

支持从Beam v2.16.0开始。要启用它,请在管道设置中将
.readMessages()
替换为
.readMessagesWithMessageId()
,然后在该更改之后,它与
message.getMessageId()
一样简单。

它看起来不像Java SDK允许访问消息的
messageId
publishTime
PubsubMessage
类只有消息负载和消息属性的成员变量。这应该作为一项新功能被请求。是否没有办法集成并尝试这样做?API调用还返回messageID字段。在读取消息时,您是否尝试过使用此API
publisubio.readMessagesWithMessageId()
谢谢-我花了一段时间才弄明白:-)FWIW,我甚至用
readmessageswithattributes和messageid
来获取我需要的所有信息