登录
首页 >  Golang >  Go问答

AWS Lambda Golang IotDataPlane.PublishInput() 永远没有有效负载

来源:stackoverflow

时间:2024-02-03 23:45:28 370浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《AWS Lambda Golang IotDataPlane.PublishInput() 永远没有有效负载》,聊聊,我们一起来看看吧!

问题内容

我无法理解如何使用 Golang 打包 iotdataplane.PublishInput() 的 Payload 字段。有人能帮忙吗?我的 Lambda 发布时没有错误,但负载在 CloudWatch 和订阅者中始终显示为空。这就是我正在做的事情:

type Response struct {
    SerialNum string `json:"serial_number"`
    Time      int64  `json:"time"`
}

resp := Response{
    SerialNum: sernum,
    Time: utc,
}
payload, _ :=- json.Marshal(resp)  // payload is a byte array

...

params := &iotdataplane.PublishInput{
    Topic: &topic,
    Payload: payload,
    PayloadFormatIndicator: aws.String(iotdataplane.PayloadFormatIndicatorUtf8Data),
    Qos: aws.Int64(0),
}

result, err := svc_client.Publish(params)

...

我已经尝试了各种有效负载的变体,但没有取得任何进展。还一度认为有效负载需要是一个以“locationName”和“type”作为字段的结构,但这也没有成功。我的有效负载字节数组肯定不为空。


正确答案


找到我的问题。

我使用 Mosquito 来测试我的 lambda 响应,问题不在于 lambda 函数,而在于用于测试的 Mosquito 订阅者条目。我使用与我的 Mosquito 酒吧相同的 id(-i 选项),我认为这让经纪人感到困惑。当我从订阅条目中删除 -i 选项后,lambda 发布就开始进行。

本篇关于《AWS Lambda Golang IotDataPlane.PublishInput() 永远没有有效负载》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>