首頁 > 後端開發 > 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學習者快速成長!