View a markdown version of this page

Testen Sie langlebige Lambda-Funktionen - AWS IoT Greengrass

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS wird der Support für eingestellt. AWS IoT Greengrass Version 1 Nach dem 7. Oktober 2026 werden Sie nicht mehr auf die Ressourcen zugreifen können. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter Migrieren von AWS IoT Greengrass Version 1.

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 Sie langlebige Lambda-Funktionen

Eine langlebige Lambda-Funktion wird automatisch gestartet, wenn der AWS IoT Greengrass Core gestartet wird, und wird in einem einzelnen Container (oder 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 AWS Lambda Konsole oder im AWS IoT Greengrass Core SDK für Python unter ansehen. GitHub

In diesem Schritt erstellen Sie Abonnements, die die Lambda-Funktion und AWS IoT den Austausch von MQTT-Nachrichten ermöglichen. Im Anschluss daran stellen Sie die Gruppe bereit und testen die Funktion.

  1. Wählen Sie auf der Gruppenkonfigurationsseite Abonnements und dann Hinzufügen aus.

  2. Wählen Sie unter Quelltyp die Lambda-Funktion aus, und wählen Sie Greengrass_HelloWorld_Counter dann.

  3. Wählen Sie unter Zieltyp die Option Service und dann IoT Cloud aus.

  4. Geben Sie für Topic filter (Themenfilter) die Zeichenfolge hello/world/counter ein.

  5. Wählen Sie Create subscription (Abonnement erstellen) aus.

    Dieses einzelne Abonnement bezieht sich nur auf eine Richtung: von der Greengrass_HelloWorld_Counter Lambda-Funktion bis AWS IoT. Um diese Lambda-Funktion aus der Cloud aufzurufen (oder auszulösen), müssen Sie ein Abonnement in die entgegengesetzte Richtung erstellen.

  6. Folgen Sie den Schritten 1 bis 5, um ein weiteres Abonnement hinzuzufügen, das die folgenden Werte verwendet. Dieses Abonnement ermöglicht es der Lambda-Funktion, Nachrichten von AWS IoT zu empfangen. Sie verwenden dieses Abonnement, wenn Sie eine Nachricht von der AWS IoT Konsole aus senden, die die Funktion aufruft.

    • Wählen Sie als Quelle Service und dann IoT Cloud aus.

    • Wählen Sie für das Ziel die Lambda-Funktion aus, und wählen Sie Greengrass_HelloWorld_Counter dann.

    • 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.

  7. Stellen Sie sicher, dass der Greengrass-Daemon läuft, wie unter beschrieben. Bereitstellen von Cloud-Konfigurationen für ein Core-Gerät

  8. Wählen Sie auf der Seite mit der Gruppenkonfiguration die Option Deploy aus.

  9. Kehren Sie nach Abschluss der Bereitstellung zur Startseite der AWS IoT Konsole zurück und wählen Sie Test aus.

  10. 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.

  11. Wählen Sie Subscribe (Abonnieren) aus.

    Anders als in Teil 1 dieses Moduls sollten Sie nach dem Abonnement von hello/world/counter keine Nachrichten sehen. Dies liegt daran, dass der greengrassHelloWorldCounter.py Code, der im hello/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 so konfiguriert, dass sie aufgerufen wird, wenn sie eine MQTT-Nachricht zu dem Thema empfängt. hello/world/counter/trigger

    Das Greengrass_HelloWorld_Counter to IoT Cloud-Abonnement ermöglicht es der Funktion, Nachrichten zum Thema AWS IoT an sie zu senden. hello/world/counter Das IoT Cloud Greengrass_HelloWorld_Counter to-Abonnement ermöglicht AWS IoT das Senden von Nachrichten an die Funktion zum hello/world/counter/trigger Thema.

  12. Um den langlebigen Lebenszyklus zu testen, rufen Sie die Lambda-Funktion auf, indem Sie eine Nachricht zum Thema veröffentlichen. hello/world/counter/trigger Sie können die Standardnachricht verwenden.

    Die Standardnachricht „Hallo von der AWS IoT Konsole“ wird an hello/world/gesendet, counter/trigger wobei die Schaltfläche „Zum Thema veröffentlichen“ hervorgehoben ist.
    Anmerkung

    Die Greengrass_HelloWorld_Counter-Funktion ignoriert den Inhalt der empfangenen Nachrichten. Sie führt lediglich den Code im function_handler aus, wodurch eine Nachricht an das hello/world/counter-Thema gesendet wird. Sie können diesen Code im AWS IoT Greengrass Core SDK für Python unter überprüfen GitHub.

Jedes Mal, wenn eine Nachricht im Thema hello/world/counter/trigger veröffentlicht wird, wird die my_counter-Variable um einen Schritt erhöht. Diese Anzahl der Aufrufe wird in den von der Lambda-Funktion gesendeten Nachrichten angezeigt. Da der Funktionshandler einen 20-Sekunden-Schlafzyklus (time.sleep(20)) beinhaltet, werden beim wiederholten Auslösen des Handlers Antworten aus dem Core in die Warteschlange gestellt. AWS IoT Greengrass

Screenshot mit der Erhöhung von „Invocation Count“ von 1, 2 und 3.