Comment puis-je publier un MQTT sujet dans une Amazon AWS Lambda fonction?
Je voudrais avoir une simple commande comme je l'ai utiliser dans le bash de publier quelque chose sur un topic sur MQTT à l'intérieur d'une AWS Lambda fonction. Le long des lignes de:
mosquitto_pub -h my.server.com -t "lumière/set" -m ","
Contexte: je voudrais transformer une lampe sur et en dehors avec Alexa. Alexa peut démarrer une fonction Lambda, et à l'intérieur de cette fonction Lambda, je voudrais commencer un MQTT publier, parce que la lampe peut écouter un MQTT sujet et réagir sur les messages.(Il existe peut-être des solutions plus simples, mais nous sommes dans un complexe (de l'université) est un réseau qui a fait de nombreuses autres approches plus difficile)
OriginalL'auteur matt_55_55 | 2016-06-14
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à l'aide de Python, j'ai été en mesure d'obtenir une AWS Lambda fonction de publier un message sur AWS IoT à l'aide de la commande suivante à l'intérieur de ma fonction de gestionnaire:
Vous aurez également besoin de s'assurer que le Rôle (dans votre Lambda configuration de la fonction) a pour politique attaché à permettre l'accès à l'Ido fonction publier. En vertu de l'IAM -> Rôles que vous pouvez ajouter une ligne politique à votre fonction Lambda Rôle comme:
OriginalL'auteur Roy
Le SDK AWS a deux classes pour travailler avec l'Ido: l'Ido et IotData. IotData.publier est la méthode que vous recherchez. Il ressemble à l'Iot objet est de travailler avec les choses et les IotData est pour travailler avec MQTT et les ombres. Cela devrait être directement référencés dans la documentation sur MQTT et les ombres, mais il ne l'est pas.
Ce service (IotData) est également disponible dans le CLI.
aws iot-data publish --cli-input-json '{"topic":"myTopic", "qos": 0, "payload": "{\"myKey\": 54321, \"myOtherKey\": 12345"}'
. La charge utile de l'clés doivent être entre guillemets doubles et s'est échappé avec les barres obliques inverses.OriginalL'auteur dpurrington
Si vous utilisez Node.js, vous devez installer le mqtt de la bibliothèque. Les étapes suivantes vous aider à télécharger et installer mqtt bibliothèque sur AWS Lambda.
Télécharger et installer Node.js et npm sur votre PC.
Télécharger MQTT bibliothèque pour node.js.
Le décompresser dans le répertoire de nodejs Node.js a été installé. (Dans Windows 10 x64, nodejs répertoire est
C:\Program Files\nodejs
)Créer un dossier pour stocker les mqtt fichiers installés. Par exemple,
D:\lambda_function
.Exécutez l'Invite de Commande en tant qu'administrateur, changez de répertoire pour nodejs répertoire.
Installer mqtt bibliothèque de
D:\lambda_function
.Voici un projet similaire.
OriginalL'auteur Khanh Ho Sy