如何简单打印原始JSON字符串,查看GKE PubSub消息的完整结构?
问题原因
你当前定义的PubSubMessage结构体仅声明了Data字段,Pub/Sub消息自带的Attributes等其余字段会在反序列化时被忽略,无法输出完整结构。
解决代码
修改后的完整Go云函数代码如下:
// Package p contains a Pub/Sub Cloud Function. package p import ( "context" "encoding/json" "log" ) // PubSubMessage 是Pub/Sub事件的完整载荷结构 type PubSubMessage struct { Data []byte `json:"data"` Attributes map[string]string `json:"attributes"` // 对应你关注的attributes字段 // 如需消息ID、发布时间等其他顶层字段,可在此处补充对应定义即可 } // HelloPubSub 消费Pub/Sub消息 func HelloPubSub(ctx context.Context, m PubSubMessage) error { // 可选1:分别打印两个核心字段 log.Println("Data字段内容:", string(m.Data)) log.Println("Attributes字段内容:", m.Attributes) // 可选2:直接输出格式化后的完整JSON结构,方便查看全量内容 fullMsg, err := json.MarshalIndent(m, "", " ") if err != nil { log.Printf("消息序列化失败: %v", err) return err } log.Println("完整Pub/Sub消息结构:\n", string(fullMsg)) return nil }
效果说明
部署上述代码后触发云函数,即可在Cloud Logging中查看完整的消息内容,包含你需要的attributes字段和data字段的全部信息。
内容的提问来源于stack exchange,提问作者user3056541
相关产品推荐
相关产品推荐

