Ich hätte gerne einen einfachen Befehl, den ich in der bash verwende, um etwas zu einem Thema auf MQTT innerhalb einer AWS Lambda-Funktion zu veröffentlichen. In Anlehnung an: mosquitto_pub -h my.server.com -t "light / set" -m "on"
Hintergrund: Ich möchte mit Alexa eine Lampe ein- und ausschalten. Alexa kann eine Lambda - Funktion starten, und innerhalb dieser Lambda - Funktion möchte ich eine MQTT - Veröffentlichung starten, weil die Lampe ein MQTT - Thema hören und auf die Nachrichten reagieren kann. (Vielleicht gibt es einfachere Lösungen, aber wir sind in einer kompliziertes (universitäres) Netzwerk, das viele andere Ansätze erschwert)
Wenn Sie Python verwenden, konnte ich eine AWS-Lambda-Funktion erhalten, um eine Nachricht an AWS IoT zu veröffentlichen, indem ich die folgende Funktion in meiner Handler-Funktion verwende:
%Vor%Sie müssen außerdem sicherstellen, dass der Rolle (in Ihrer Lambda-Funktionskonfiguration) eine Richtlinie zugeordnet ist, um den Zugriff auf die IoT-Veröffentlichungsfunktion zu ermöglichen. Unter IAM - & gt; Rollen Sie können Ihrer Lambda-Funktion eine Inline-Richtlinie hinzufügen wie:
%Vor%Das AWS SDK verfügt über zwei Klassen für die Arbeit mit IoT: Iot und IotData. IotData.publish ist die Methode, nach der Sie suchen. Es sieht so aus, als ob das Iot-Objekt zum Arbeiten mit Dingen dient und IotData zum Arbeiten mit MQTT und Schatten. Dies sollte in der Dokumentation zu MQTT und Schatten direkt referenziert werden, ist es aber nicht.
Dieser Dienst (IotData) ist auch in der CLI verfügbar .
Wenn Sie Node.js verwenden, müssen Sie die mqtt-Bibliothek installieren. Mit den folgenden Schritten können Sie die mqtt-Bibliothek auf AWS Lambda herunterladen und installieren.
Downloaden und installieren Sie Node.js und npm auf Ihrem PC.
Entpacken Sie es im Verzeichnis nodejs, in dem Node.js installiert wurde. (In Windows 10 x64 ist das Verzeichnis nodejs C:\Program Files\nodejs
)
Erstellen Sie einen Ordner zum Speichern der installierten mqtt-Dateien. Zum Beispiel D:\lambda_function
.
Führen Sie die Eingabeaufforderung als Administrator aus und wechseln Sie in das Verzeichnis nodejs.
Installieren Sie die mqtt-Bibliothek in D:\lambda_function
.
Tags und Links amazon-web-services aws-lambda publish mqtt