AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Testen von langdauernden -Funktionen
EINlangdauerndenDie Lambda-Funktion startet automatisch, wenn dieAWS IoT Greengrasscore wird in einem einzelnen Container (oder einer Sandbox))) ausgeführt. Alle Variablen und sämtliche Vorverarbeitungslogik, die außerhalb des Funktionshandlers definiert sind, werden für jeden Aufruf des Funktionshandlers beibehalten. Mehrere Aufrufe werden so lange in eine Warteschlange gesetzt, bis die Ausführung vorheriger Aufrufe abgeschlossen ist.
Der in diesem Modul verwendete greengrassHelloWorldCounter.py
-Code definiert eine my_counter
-Variable außerhalb des Funktionshandlers.
Anmerkung
Sie können den Code in der anzeigenAWS Lambda-Konsole oder in derAWS IoT GreengrassCores SDK für Python
In diesem Schritt erstellen Sie Abonnements, die Lambda-Funktion undAWS IoTum MQTT-Nachrichten auszutauschen. Im Anschluss daran stellen Sie die Gruppe bereit und testen die Funktion.
-
Wählen Sie auf der Gruppenkonfigurationsseite die OptionAbonnementsund wählen Sie dann ausAddaus.
-
UnderRessourcentyp, wählenLambda-Funktionund wählen Sie dann ausGreengrass_HelloWorld_Thekeaus.
-
UnderZieltyp, wählen-Service, wählenIoT Cloudaus.
-
Geben Sie für Topic filter (Themenfilter) die Zeichenfolge
hello/world/counter
ein. -
Wählen Sie Create subscription (Abonnement erstellen) aus.
Dieses einzelne Abonnement betrifft nur eine Richtung: vom
Greengrass_HelloWorld_Counter
Lambda-Funktion zumAWS IoTaus. Um diese Lambda-Funktion über die Cloud aufrufen (oder auslösen) zu können, müssen Sie ein Abonnement in der entgegengesetzten Richtung erstellen. -
Befolgen Sie die Schritte 1—5, um ein weiteres Abonnement hinzuzufügen, das die folgenden Werte verwendet. Dadurch können Sie die Lambda-Funktion für den Empfang von Nachrichten vom einrichtenAWS IoTaus. Sie verwenden dieses Abonnement, wenn Sie eine Nachricht vomAWS IoT-Konsole, von der die Funktion aufgerufen wird.
-
Wählen Sie für die Quelle-Serviceund wählen Sie dann ausIoT Cloudaus.
-
Wählen Sie für das ZielLambda-Funktionund wählen Sie dann ausGreengrass_HelloWorld_Thekeaus.
-
Geben Sie für den Themenfilter
hello/world/counter/trigger
ein.
In diesem Themenfilter wird die Erweiterung
/trigger
verwendet, da Sie zwei Abonnements erstellt haben, die sich nicht gegenseitig beeinträchtigen sollen. -
Stellen Sie sicher, dass der Greengrass-Daemon, wie in beschrieben, ausgeführt wirdBereitstellen von Cloud-Konfigurationen für ein Core-Gerätaus.
-
Wählen Sie auf der Gruppenkonfigurationsseite die OptionBereitstellenaus.
-
Nachdem Ihre Bereitstellung abgeschlossen wurde, kehren Sie zumAWS IoT-Konsolen-Startseite und wählen SieTestaus.
-
Konfigurieren Sie die folgenden Felder:
-
Geben Sie für Abonnementthema
hello/world/counter
ein. -
Wählen Sie für Servicequalität 0 aus.
-
Wählen Sie für MQTT-Nutzlast-Anzeige die Option Nutzlasten als Zeichenfolgen anzeigen aus.
-
-
Wählen Sie Subscribe aus.
Anders als in Teil 1 dieses Moduls sollten Sie nach dem Abonnement von
hello/world/counter
keine Nachrichten sehen. Dies liegt daran, dass dergreengrassHelloWorldCounter.py
Code, der imhello/world/counter
-Thema veröffentlicht, sich innerhalb des Funktionshandlers befindet, der nur ausgeführt wird, wenn die Funktion aufgerufen wird.In diesem Modul haben Sie die
Greengrass_HelloWorld_Counter
Lambda-Funktion, die aufgerufen wird, wenn sie eine MQTT-Nachricht auf demhello/world/counter/trigger
-Thema.DieGreengrass_HelloWorld_ThekezuIoT Cloud-Funktionen ermöglichen die -Funktion, Nachrichten an zu sendenAWS IoTauf der
hello/world/counter
-Thema. DieIoT CloudzuGreengrass_HelloWorld_ThekeAbonnement erlaubtAWS IoTum Meldungen an die -Funktion auf demhello/world/counter/trigger
-Thema. -
Um den langdauernden Lebenszyklus zu überprüfen, rufen Sie die Lambda-Funktion auf, indem Sie eine Nachricht im
hello/world/counter/trigger
-Thema. Sie können die Standardnachricht verwenden.Anmerkung
Die
Greengrass_HelloWorld_Counter
-Funktion ignoriert den Inhalt der empfangenen Nachrichten. Sie führt lediglich den Code imfunction_handler
aus, wodurch eine Nachricht an dashello/world/counter
-Thema gesendet wird. Sie können diesen Code in derAWS IoT GreengrassCores SDK für Pythonauf GitHubaus.
Jedes Mal, wenn eine Nachricht im Thema hello/world/counter/trigger
veröffentlicht wird, wird die my_counter
-Variable um einen Schritt erhöht. Die Anzahl der Aufrufe wird in den von der Lambda-Funktion gesendeten Nachrichten angegeben. Weil der Funktionshandler einen 20-sekündigen Ruhezyklus beinhaltet (time.sleep(20)
), wobei der Handler wiederholt die Antworten vom in eine Warteschlange gestellt werdenAWS IoT GreengrassKern.