Erstellen und Verpacken einer Lambda-Funktion - AWS IoT Greengrass

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.

Erstellen und Verpacken einer Lambda-Funktion

Die -Python-Lambda-Funktion in diesem Modul verwendetAWS IoT GreengrassCore-SDK, um MQTT-Nachrichten zu veröffentlichen.

In diesem Schritt führen Sie folgende Aktionen aus:

  • Herunterladen desAWS IoT GreengrassCore-SDK für Ihren Computer (nicht dasAWS IoT GreengrassCore-Gerät).

  • Erstellen Sie ein Bereitstellungspaket für die Lambda-Funktion, das den Funktionscode und Abhängigkeiten

  • Erstellen Sie über die Lambda-Konsole eine Lambda-Funktion und laden Sie das Bereitstellungspaket hoch.

  • Veröffentlichen Sie eine Version der Lambda-Funktion und erstellen Sie einen Alias, der auf die Version zeigt.

Um dieses Modul abschließen zu können, muss Python 3.7 auf Ihrem Core-Gerät installiert sein.

 

  1. FromAWS IoT GreengrassCore-SDKDownloads-Seite, laden Sie dieAWS IoT GreengrassCore SDK für Python auf Ihrem Computer.

  2. Entpacken Sie das heruntergeladene Paket, um den Lambda-Funktionscode und das SDK zu erhalten.

    Die Lambda-Funktion in diesem Modul verwendet Folgendes:

    • Die Datei greengrassHelloWorld.py in examples\HelloWorld. Das ist Ihr Lambda-Funktionscode. Alle fünf Sekunden veröffentlicht die Funktion eine von zwei möglichen Nachrichten im Thema hello/world.

    • Der Ordner greengrasssdk. Dies ist das SDK.

  3. Kopieren Sie den Ordner greengrasssdk in den Ordner HelloWorld, der greengrassHelloWorld.py enthält.

  4. Um das Bereitstellungspaket für die Lambda-Funktion zu erstellen,greengrassHelloWorld.pyund diegreengrasssdkOrdner in einen komprimiertenzipDatei mit dem Namenhello_world_python_lambda.zip. Die Datei py und der Ordner greengrasssdk müssen sich im Root des Verzeichnisses befinden.

    Screenshot mit dem komprimierten Inhalt der Datei "hello_word_python_lambda.zip"

    Auf UNIX-ähnlichen Systemen (einschließlich des Mac-Terminals) können Sie den folgenden Befehl verwenden, um die Datei und den Ordner zu verpacken:

    zip -r hello_world_python_lambda.zip greengrasssdk greengrassHelloWorld.py
    Anmerkung

    Je nach Ihrer Verteilung müssen Sie möglicherweise zuerst zip installieren (z. B. durch Ausführen von sudo apt-get install zip). Der Installationsbefehl kann für Ihre Verteilung abweichen.

    Nun können Sie Ihre Lambda-Funktion erstellen und das Bereitstellungspaket hochladen.

  5. Öffnen Sie die Lambda-Konsole und wählen SieErstellen einer -Funktion.

  6. Wählen Sie Author from scratch aus.

  7. Geben Sie Ihrer Funktion den Namen Greengrass_HelloWorld und richten Sie die verbleibenden Felder wie folgt ein:

    • Wählen Sie für Runtime (Laufzeit) die Option Python 3.7 aus.

    • FürBerechtigungenbehalten Sie die Standardeinstellung bei. Dadurch wird eine Ausführungsrolle erstellt, die grundlegende Lambda-Berechtigungen gewährt. Diese Rolle wird nicht vonAWS IoT Greengrass.

    Wählen Sie Create function (Funktion erstellen).

  8. Laden Sie das Bereitstellungspaket Ihrer Lambda-Funktion hoch:

    1. Auf derCodeunterCode-Quelle, wählenHochladen von. Wählen Sie in der Dropdown-ListeZIP-Datei.

      Die Dropdownliste Upload from mit hervorgehobener ZIP-Datei.
    2. Klicken Sie aufHochladenund wählen Siehello_world_python_lambda.zipBereitstellungspaket. Wählen Sie dann Save (Speichern) aus.

    3. Auf derCodefür die Funktion, unterRuntime Einstellungen, wählenBearbeiten, und geben Sie die folgenden Werte ein.

      • Wählen Sie für Runtime (Laufzeit) die Option Python 3.7 aus.

      • Geben Sie unter Handler greengrassHelloWorld.function_handler ein.

      Setzen Sie im Abschnitt „Runtime information“ das Feld „Runtime 3.7" und das Feld „Runtime 3.7" auf „Runtime 2.7“.greengrassHelloWorld.function_handler“.
    4. Wählen Sie Save (Speichern) aus.

      Anmerkung

      DieTestaufAWS Lambda-Konsole funktioniert nicht mit dieser -Funktion. DieAWS IoT GreengrassDas Core SDK enthält keine Module, die erforderlich sind, um Ihre Greengrass Lambda-Funktionen unabhängig imAWS Lambdaconsole. Diese Module (zum Beispielgreengrass_common) werden für die Funktionen bereitgestellt, nachdem sie in Ihrem Greengrass-Kern bereitgestellt wurden.

  9. Veröffentlichen der Lambda-Funktion.

    1. FromAktionenWählen Sie im oberen Bereich der SeiteEine neue Version veröffentlichen.

      Screenshot des Menüs „Actions” mit Hervorhebung von „Publish new version”.
    2. Geben Sie unter Version description (Versionsbeschreibung) den Wert First version ein und wählen Sie dann Publish (Veröffentlichen) aus.

      Screenshot mit Einstellung des Felds „Version description“ auf „First version“ und Hervorhebung der Schaltfläche „Publish“.
  10. Erstellen einesAliasfür die Lambda-FunktionAusführung:

    Anmerkung

    Greengrass-Gruppen können eine Lambda-Funktion per Alias (empfohlen) oder nach Version referenzieren. Mit einem Alias lassen sich Code-Updates einfacher verwalten, da die Abonnementtabelle oder Gruppendefinition nicht geändert werden muss, wenn der Funktionscode aktualisiert wird. Stattdessen verweisen Sie einfach den Alias auf die neue Funktionsversion.

    1. FromAktionenWählen Sie im oberen Bereich der SeiteErstellen eines Alias.

      Screenshot des Menüs „Actions” mit der Einstellung „Create alias”.
    2. Geben Sie dem AliasGG_HelloWorld, setze die Version auf1(entsprechend der soeben veröffentlichten Version) und wählen SieSave.

      Anmerkung

      AWS IoT Greengrassunterstützt keine Lambda-Aliassen$LATESTVersionen.

       

      Screenshot von „Create a new alias mit dem Feld „Name“ auf „GG_“HelloWorld, und das Feld Version ist auf 1 gesetzt.