Google app engine Google PubSub getMessageID=null,因为标记错误?

Google app engine Google PubSub getMessageID=null,因为标记错误?,google-app-engine,publish-subscribe,google-cloud-pubsub,Google App Engine,Publish Subscribe,Google Cloud Pubsub,我在从订阅服务器中的pubsub消息获取消息ID时遇到一些困难。问题似乎是pubsub消息正在message_ID字段中存储ID,但getMessageId方法正在不存在的messageId字段中查找消息ID 我正在尝试从另一个应用程序发布的Pubsub消息获取消息ID。JSON请求主体如下所示: { "message": { "data": "SomeEncodedDate", "attributes": { "Published

我在从订阅服务器中的pubsub消息获取消息ID时遇到一些困难。问题似乎是pubsub消息正在message_ID字段中存储ID,但getMessageId方法正在不存在的messageId字段中查找消息ID

我正在尝试从另一个应用程序发布的Pubsub消息获取消息ID。JSON请求主体如下所示:

{
    "message": {
        "data": "SomeEncodedDate",
        "attributes": {
            "Published_Timestamp": "1438970954798"
        },
        "message_id": "1325068255839"
    },
    "subscription": "projects/MyProject/subscriptions/MySubscription"
}
我可以使用以下代码成功地重新创建邮件:

JsonParser parser=JacksonFactory.getDefaultInstance().createJsonParser(jsonRequest);
skipToKey(“消息”);
PubsubMessage=parser.parseAndClose(PubsubMessage.class);
如果我在调试器中查看消息,它在message_ID字段中具有有效的消息ID。但是,getMessageId()返回null。如果我使用setMessageId(“SomeKey”)方法,那么消息将包含一个带有新值的messageId新字段。现在我的消息有两个ID字段,message_ID和messageId。调用getMessageId现在返回messageId字段值,而不是pubsub消息中实际包含的消息id


这是一个错误还是我做错了什么?

不幸的是,我没有找到其他解决方案。我唯一能做的就是用message.setMessageId(message.get(“message_ID”).toString()将消息ID复制到messageId字段中;然后我可以使用getMessageId方法。这只是一个bug。

我发现了一个创可贴解决方案,但我宁愿不这样做。我可以使用以下命令将消息ID复制到messageId字段:message.setMessageId(message.get(“message_ID”).toString();然后我可以使用getMessageId方法,但这似乎不对。您使用的是推送订阅吗?是的,我们使用的是推送订阅。