Pub / Sub推送消息不具有messageId属性

问题描述 投票:0回答:1

这可能值得针对Cloud Pub / Sub服务出现问题。但是到目前为止,GCP支持并没有真正帮助,因此我将在此发布。

根据here,Pubsub消息应该具有messageId属性,无论它是来自pull还是push。

因此,我试图查看消息的外观:(这里的事件是发布到云功能的pubsub消息)

exports.my_cloud_function = (event) => {
    logger.debug(`Event: ${util.inspect(event)}`);
}

我期望的是:

{ '@type': 'type.googleapis.com/google.pubsub.v1.PubsubMessage', messageId:'111111111', publishTime: 'Oct 1st 2019, xxxx', attributes: { key1: 'value1', key2: 'value2' }, data: 'eLCJ=(some base 64)' }

实际上是什么:

{ '@type': 'type.googleapis.com/google.pubsub.v1.PubsubMessage', attributes: { key1: 'value1', key2: 'value2' }, data: 'eLCJ=(some base 64)' }
node.js google-cloud-platform google-cloud-pubsub
1个回答
0
投票

[如果我猜对了,您正在将Cloud Function与事件触发器一起使用。这是一个常见的陷阱(我在其中多次感到...)。

因此,在事件格式中,publishedTime和messageId在context对象中,而不是在事件中,如描述的here

在您的函数中,在参数中添加上下文,然后打印。应该可以。

exports.my_cloud_function = (event,context) => {
    logger.debug(`Event: ${util.inspect(event)}`);
    logger.debug(`Context: ${util.inspect(context)}`);
}
© www.soinside.com 2019 - 2024. All rights reserved.