Maison > développement back-end > Golang > La charge utile AWS lambda golang iotdataplane.PublishInput() est toujours vide

La charge utile AWS lambda golang iotdataplane.PublishInput() est toujours vide

WBOY
Libérer: 2024-02-11 19:10:08
avant
521 Les gens l'ont consulté

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

L'éditeur php Xinyi rappelle à tout le monde que lors de l'utilisation du langage de programmation AWS Lambda Golang, il y a une chose à noter : lors de l'utilisation de la méthode iotdataplane.PublishInput(), sa charge utile (Payload) est toujours vide. Cela signifie que lors de l'écriture du code pertinent, une attention particulière doit être accordée à la gestion des situations de chargement vide pour garantir le fonctionnement normal du programme. Dans le processus de développement réel, des instructions conditionnelles ou des mécanismes de gestion des erreurs peuvent être utilisés pour gérer cette situation afin d'éviter des problèmes potentiels. Garder cela à l’esprit contribuera à améliorer la robustesse et la fiabilité de votre code.

Contenu de la question

Je n'arrive pas à comprendre comment utiliser Golang pour empaqueter le champ Payload de iotdataplane.PublishInput(). Quelqu'un peut-il m'aider ? Mon Lambda publie sans erreur, mais la charge utile apparaît toujours comme vide dans CloudWatch et les abonnés. Voici ce que je fais :

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)

...
Copier après la connexion

J'ai essayé différentes variantes de la charge utile, mais je n'ai fait aucun progrès. On a également pensé à un moment donné que la charge utile devait être une structure avec "locationName" et "type" comme champs, mais cela n'a pas fonctionné non plus. Mon tableau d'octets de charge utile n'est certainement pas vide.

Solution

J'ai trouvé mon problème.

J'utilise Mosquito pour tester mes réponses lambda et le problème ne vient pas de la fonction lambda mais des entrées d'abonné Mosquito utilisées pour les tests. J'utilise le même identifiant (option -i) que ma barre Mosquito, ce qui, je pense, confond le courtier. Lorsque j'ai supprimé l'option -i de l'entrée d'abonnement, la publication lambda a commencé à fonctionner.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal