首页 > 后端开发 > Golang > 正文

AWS lambda golang iotdataplane.PublishInput() 有效负载始终为空

WBOY
发布: 2024-02-11 19:10:08
转载
463 人浏览过

AWS lambda golang iotdataplane.PublishInput() 有效负载始终为空

php小编新一提醒大家,在使用AWS Lambda Golang编程语言时,有一点需要注意:在使用iotdataplane.PublishInput()方法时,其有效负载(Payload)始终为空。这意味着在编写相关代码时,需要特别注意处理空负载的情况,以确保程序的正常运行。在实际开发过程中,可以使用条件语句或错误处理机制来处理这种情况,以避免潜在的问题。记住这一点,将有助于提高代码的健壮性和可靠性。

问题内容

我无法理解如何使用 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() 有效负载始终为空的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!