正在查找触发云功能的发布/子消息的messageID



我正在尝试访问Pub/Sub消息的messageId,以触发我的Golang函数。为此,我试图修改Cloud Functions文档中的PubSubMessage结构:

// PubSubMessage is the payload of a Pub/Sub event.
// See the documentation for more details:
// https://cloud.google.com/pubsub/docs/reference/rest/v1/PubsubMessage
type PubSubMessage struct {
Data []byte `json:"data"`
MessageId string `json:"messageId"`
}

函数编译正常,但MessageID值为空。更改类型没有帮助。我想知道是否有一种方法可以从函数中获取触发消息Id。或者可能根本没有传递给函数?

在您引用的文档中,

事件结构

发布/子主题触发的云功能将发送了符合PubsubMessage类型的事件,但需要注意publishTime和messageId在PubsubMessage。相反,您可以通过访问publishTime和messageId事件元数据的事件ID和时间戳属性。这元数据可以通过传递给函数。

您可以像这样获得messageId

import  "cloud.google.com/go/functions/metadata"
func YourFunc(ctx context.Context, m PubSubMessage) error {
metadata, err := metadata.FromContext(ctx)
if err != nil {
// Handle Error
}
messageId := metadata.EventID
// Rest of your code below here.
}

相关内容

  • 没有找到相关文章

最新更新