Heim > Artikel > Backend-Entwicklung > Die AWS-Lambda-Golang-Nutzlast iotdataplane.PublishInput() ist immer leer
php-Editor Xinyi erinnert alle daran, dass bei Verwendung der Programmiersprache AWS Lambda Golang eines zu beachten ist: Bei Verwendung der Methode iotdataplane.PublishInput() ist deren Nutzlast (Payload) immer leer. Dies bedeutet, dass beim Schreiben relevanten Codes besonderes Augenmerk auf den Umgang mit leeren Ladesituationen gelegt werden muss, um den normalen Betrieb des Programms sicherzustellen. Im eigentlichen Entwicklungsprozess können bedingte Anweisungen oder Fehlerbehandlungsmechanismen verwendet werden, um mit dieser Situation umzugehen und potenzielle Probleme zu vermeiden. Wenn Sie dies berücksichtigen, können Sie die Robustheit und Zuverlässigkeit Ihres Codes verbessern.
Ich verstehe nicht, wie man mit Golang das Payload-Feld von iotdataplane.PublishInput() verpackt. Kann jemand helfen? Mein Lambda veröffentlicht fehlerfrei, aber die Nutzlast wird in CloudWatch und Abonnenten immer als leer angezeigt. Das mache ich:
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) ...
Ich habe verschiedene Variationen der Nutzlast ausprobiert, aber keine Fortschritte gemacht. Irgendwann wurde auch angenommen, dass die Nutzlast eine Struktur mit „locationName“ und „type“ als Feldern sein müsste, aber auch das hat nicht geklappt. Mein Payload-Byte-Array ist definitiv nicht leer.
Habe mein Problem gefunden.
Ich verwende Mosquito, um meine Lambda-Antworten zu testen, und das Problem liegt nicht an der Lambda-Funktion, sondern an den zum Testen verwendeten Mosquito-Abonnenteneinträgen. Ich verwende dieselbe ID (Option -i) wie meine Mosquito-Bar, was meiner Meinung nach den Broker verwirrt. Als ich die Option -i aus dem Abonnementeintrag entfernte, begann die Lambda-Veröffentlichung zu funktionieren.
Das obige ist der detaillierte Inhalt vonDie AWS-Lambda-Golang-Nutzlast iotdataplane.PublishInput() ist immer leer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!