Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Muatan AWS lambda golang iotdataplane.PublishInput() sentiasa kosong

Muatan AWS lambda golang iotdataplane.PublishInput() sentiasa kosong

WBOY
WBOYke hadapan
2024-02-11 19:10:08489semak imbas

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

editor php Xinyi mengingatkan semua orang bahawa apabila menggunakan bahasa pengaturcaraan AWS Lambda Golang, ada satu perkara yang perlu diberi perhatian: apabila menggunakan kaedah iotdataplane.PublishInput(), muatannya (Payload) sentiasa kosong. Ini bermakna apabila menulis kod yang berkaitan, perhatian khusus perlu diberikan untuk mengendalikan situasi beban kosong untuk memastikan operasi normal program. Dalam proses pembangunan sebenar, pernyataan bersyarat atau mekanisme pengendalian ralat boleh digunakan untuk mengendalikan situasi ini untuk mengelakkan masalah yang mungkin berlaku. Mengingat perkara ini akan membantu meningkatkan keteguhan dan kebolehpercayaan kod anda.

Kandungan soalan

Saya tidak faham cara menggunakan Golang untuk membungkus medan Muatan iotdataplane.PublishInput(). Ada sesiapa boleh tolong? Lambda saya menerbitkan tanpa ralat, tetapi muatan sentiasa dipaparkan sebagai kosong dalam CloudWatch dan pelanggan. Inilah yang saya lakukan:

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)

...

Saya telah mencuba pelbagai variasi muatan tetapi tidak membuat sebarang kemajuan. Ia juga difikirkan pada satu ketika bahawa muatan perlu menjadi struct dengan "locationName" dan "type" sebagai medan, tetapi itu juga tidak berjaya. Tatasusunan bait muatan saya pastinya tidak kosong.

Penyelesaian

Menjumpai masalah saya.

Saya menggunakan Mosquito untuk menguji respons lambda saya dan masalahnya bukan pada fungsi lambda tetapi dengan penyertaan pelanggan Nyamuk yang digunakan untuk ujian. Saya menggunakan id (-i pilihan) yang sama seperti bar Nyamuk saya, yang saya fikir mengelirukan broker. Apabila saya mengalih keluar pilihan -i daripada entri langganan, penerbitan lambda mula berfungsi.

Atas ialah kandungan terperinci Muatan AWS lambda golang iotdataplane.PublishInput() sentiasa kosong. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam