

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 können Sie nicht mehr auf die Ressourcen zugreifen. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter [Migrieren von AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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
<a name="long-testing"></a>

Eine *[langlebige](lambda-functions.md#lambda-lifecycle)* Lambda-Funktion wird automatisch gestartet, wenn der AWS IoT Greengrass Kern in einem einzigen Container (oder einer Sandbox) gestartet und ausgeführt wird. 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](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py) unter anzeigen 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.**

1. Wählen Sie unter **Quelltyp** die Option **Lambda-Funktion** und dann **HelloWorldGreengrass\$1** \$1Counter aus.

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

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

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

   Dieses einzelne Abonnement geht nur in 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 umgekehrter Richtung erstellen.

1. 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 senden, die die Funktion aufruft.
   + Wählen Sie als Quelle **Service** und dann **IoT Cloud** aus.
   + Wählen Sie für das Ziel **Lambda-Funktion** und dann **HelloWorldGreengrass\$1** \$1Counter aus.
   + 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.

1. Stellen Sie sicher, dass der Greengrass-Daemon läuft, wie unter beschrieben. [Bereitstellen von Cloud-Konfigurationen für ein Core-Gerät](configs-core.md)

1. <a name="console-actions-deploy"></a>**Wählen Sie auf der Gruppenkonfigurationsseite Deploy aus.**

1. <a name="console-test-after-deploy"></a>Kehren Sie nach Abschluss der Bereitstellung zur Startseite der AWS IoT Konsole zurück und wählen Sie **Test** aus.

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

1. Wählen Sie **Subscribe (Abonnieren)** aus.

   Anders als in [Teil 1](module3-I.md) 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 diesem Thema empfängt. `hello/world/counter/trigger`

   Das **Greengrass\$1 HelloWorld \$1Counter** to **IoT Cloud-Abonnement** ermöglicht es der Funktion, Nachrichten zum Thema AWS IoT an zu senden. `hello/world/counter` Das Abonnement **IoT Cloud** to **Greengrass\$1 HelloWorld \$1Counter** ermöglicht das Senden von Nachrichten AWS IoT an die Funktion zu diesem Thema. `hello/world/counter/trigger`

1. 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.  
![\[Standardmäßig wird die Nachricht „Hallo von der AWS IoT Konsole“ gesendet, an die die hello/world/counter/trigger Schaltfläche „Im Thema veröffentlichen“ markiert ist.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-057.png)
**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](https://github.com/aws/aws-greengrass-core-sdk-python/blob/master/examples/HelloWorldCounter/greengrassHelloWorldCounter.py) 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 von Aufrufen wird in den Nachrichten angezeigt, die von der Lambda-Funktion gesendet werden. Da der Funktionshandler einen 20-Sekunden-Schlafzyklus (`time.sleep(20)`) beinhaltet, werden beim wiederholten Auslösen des Handlers Antworten vom Kern in eine Warteschlange gestellt. AWS IoT Greengrass 

![\[Screenshot mit der Erhöhung von „Invocation Count“ von 1, 2 und 3.\]](http://docs.aws.amazon.com/de_de/greengrass/v1/developerguide/images/gg-get-started-058.png)
