Importieren einer Lambda-Funktion als Komponente (Konsole) - AWS IoT Greengrass

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.

Importieren einer Lambda-Funktion als Komponente (Konsole)

Wenn Sie die AWS IoT Greengrass Konsole verwenden, um eine Lambda-Funktionskomponente zu erstellen, importieren Sie eine vorhandene AWS Lambda Funktion und konfigurieren sie dann so, dass eine Komponente erstellt wird, die auf Ihrem Greengrass-Gerät ausgeführt wird.

Bevor Sie beginnen, überprüfen Sie die Anforderungen zum Ausführen von Lambda-Funktionen auf Greengrass-Geräten.

Schritt 1: Auswählen einer zu importierenden Lambda-Funktion

  1. Wählen Sie im Navigationsmenü der AWS IoT GreengrassKonsole Komponenten aus.

  2. Wählen Sie auf der Seite Komponenten die Option Komponente erstellen aus.

  3. Wählen Sie auf der Seite Komponente erstellen unter Komponenteninformationen die Option Lambda-Funktion importieren aus.

  4. Suchen Sie in der Lambda-Funktion nach der Lambda-Funktion, die Sie importieren möchten, und wählen Sie sie aus.

    AWS IoT Greengrass erstellt die Komponente mit dem Namen der Lambda-Funktion.

  5. Wählen Sie in Version der Lambda-Funktion die zu importierende Version aus. Sie können keine Lambda-Aliase wie auswählen$LATEST.

    AWS IoT Greengrass erstellt die Komponente mit der Version der Lambda-Funktion als gültige semantische Version. Wenn Ihre Funktionsversion beispielsweise 3 lautet, wird die Komponentenversion 3.0.0.

Schritt 2: Konfigurieren von Lambda-Funktionsparametern

Konfigurieren Sie auf der Seite Komponente erstellen unter Konfiguration der Lambda-Funktion die folgenden Parameter, die zum Ausführen der Lambda-Funktion verwendet werden sollen.

  1. (Optional) Fügen Sie die Liste der Ereignisquellen hinzu, für die die Lambda-Funktion Arbeitsnachrichten abonniert. Sie können Ereignisquellen angeben, um diese Funktion für lokale Veröffentlichungs-/Abonnementnachrichten und AWS IoT Core MQTT-Nachrichten zu abonnieren. Die Lambda-Funktion wird aufgerufen, wenn sie eine Nachricht von einer Ereignisquelle erhält.

    Anmerkung

    Um diese Funktion für Nachrichten von anderen Lambda-Funktionen oder -Komponenten zu abonnieren, stellen Sie die Legacy-Abonnement-Routerkomponente bereit, wenn Sie diese Lambda-Funktionskomponente bereitstellen. Wenn Sie die Legacy-Abonnement-Routerkomponente bereitstellen, geben Sie die Abonnements an, die die Lambda-Funktion verwendet.

    Gehen Sie unter Ereignisquellen wie folgt vor, um eine Ereignisquelle hinzuzufügen:

    1. Geben Sie für jede Ereignisquelle, die Sie hinzufügen, die folgenden Optionen an:

      • Thema – Das Thema, das Nachrichten abonniert werden soll.

      • Typ – Der Typ der Ereignisquelle. Wählen Sie aus den folgenden Optionen aus:

        • Lokales Veröffentlichen/Abonnieren – Abonnieren Sie lokale Veröffentlichungs-/Abonnementnachrichten.

          Wenn Sie den Greengrass-Kern v2.6.0 oder höher und Lambda Manager v2.2.5 oder höher verwenden, können Sie MQTT-Themen-Platzhalter (+ und #) im Thema verwenden, wenn Sie diesen Typ angeben.

        • AWS IoT Core MQTT – Abonnieren Sie AWS IoT Core MQTT-Nachrichten.

          Sie können MQTT-Themen-Platzhalter (+ und #) im Thema verwenden, wenn Sie diesen Typ angeben.

    2. Um eine weitere Ereignisquelle hinzuzufügen, wählen Sie Ereignisquelle hinzufügen und wiederholen Sie den vorherigen Schritt. Um eine Ereignisquelle zu entfernen, wählen Sie Entfernen neben der Ereignisquelle aus, die Sie entfernen möchten.

  2. Geben Sie für Timeout (Sekunden) die maximale Zeit in Sekunden ein, die eine nicht angeheftete Lambda-Funktion ausgeführt werden kann, bevor eine Zeitüberschreitung auftritt. Der Standardwert ist 3 Sekunden.

  3. Wählen Sie für Angeheftet aus, ob die Lambda-Funktionskomponente angeheftet ist. Der Standardwert ist True .

    • Eine angeheftete (oder langlebige) Lambda-Funktion startet, wenn AWS IoT Greengrass startet und weiter in einem eigenen Container ausgeführt wird.

    • Eine nicht angeheftete (oder On-Demand) Lambda-Funktion startet nur, wenn sie ein Arbeitselement empfängt, und wird beendet, nachdem sie für eine bestimmte maximale Leerlaufzeit inaktiv bleibt. Wenn die Funktion mehrere Arbeitselemente enthält, erstellt die AWS IoT Greengrass Core-Software mehrere Instances der Funktion.

  4. (Optional) Legen Sie unter Zusätzliche Parameter die folgenden Lambda-Funktionsparameter fest.

    • Status-Timeout (Sekunden) – Das Intervall in Sekunden, in dem die Lambda-Funktionskomponente Statusaktualisierungen an die Lambda-Manager-Komponente sendet. Dieser Parameter gilt nur für angeheftete Funktionen. Standardmäßig ist ein Zeitraum von 60 Sekunden festgelegt.

    • Maximale Warteschlangengröße – Die maximale Größe der Nachrichtenwarteschlange für die Lambda-Funktionskomponente. Die AWS IoT Greengrass Core-Software speichert Nachrichten in einer FIFO-Warteschlange (First-In, First-Out), bis sie die Lambda-Funktion ausführen kann, um jede Nachricht zu verarbeiten. Der Standardwert ist 1 000 Nachrichten.

    • Maximale Anzahl von Instances – Die maximale Anzahl von Instances, die eine nicht angeheftete Lambda-Funktion gleichzeitig ausführen kann. Der Standardwert ist 100 Instances.

    • Maximale Leerlaufzeit (Sekunden) – Die maximale Zeit in Sekunden, die eine nicht angeheftete Lambda-Funktion im Leerlauf verbringen kann, bevor die AWS IoT Greengrass Core-Software ihren Prozess beendet. Standardmäßig ist ein Zeitraum von 60 Sekunden festgelegt.

    • Codierungstyp – Der Typ der Nutzlast, die die Lambda-Funktion unterstützt. Wählen Sie aus den folgenden Optionen aus:

      • JSON

      • Binary

      Der Standardwert ist JSON.

  5. (Optional) Geben Sie die Liste der Befehlszeilenargumente an, die bei der Ausführung an die Lambda-Funktion übergeben werden sollen.

    1. Wählen Sie unter Zusätzliche Parameter die Option Argument hinzufügen aus.

    2. Geben Sie für jedes Argument, das Sie hinzufügen, das Argument ein, das Sie an die Funktion übergeben möchten.

    3. Um ein Argument zu entfernen, wählen Sie neben dem Argument, das Sie entfernen möchten, Entfernen aus.

  6. (Optional) Geben Sie die Umgebungsvariablen an, die der Lambda-Funktion bei der Ausführung zur Verfügung stehen. Mit Umgebungsvariablen können Sie Konfigurationseinstellungen speichern und aktualisieren, ohne den Funktionscode ändern zu müssen.

    1. Wählen Sie unter Zusätzliche Parameter, Umgebungsvariablen die Option Umgebungsvariable hinzufügen aus.

    2. Geben Sie für jede Umgebungsvariable, die Sie hinzufügen, die folgenden Optionen an:

      • Schlüssel – Der Variablenname.

      • Wert – Der Standardwert für diese Variable.

    3. Um eine Umgebungsvariable zu entfernen, wählen Sie Entfernen neben der Umgebungsvariablen aus, die Sie entfernen möchten.

Schritt 3: (Optional) Geben Sie unterstützte Plattformen für die Lambda-Funktion an

Alle -Core-Geräte haben Attribute für Betriebssystem und Architektur. Wenn Sie die Lambda-Funktionskomponente bereitstellen, vergleicht die AWS IoT Greengrass-Core-Software die von Ihnen angegebenen Plattformwerte mit den Plattformattributen auf dem Core-Gerät, um festzustellen, ob die Lambda-Funktion auf diesem Gerät unterstützt wird.

Anmerkung

Sie können auch benutzerdefinierte Plattformattribute angeben, wenn Sie die Greengrass-Kernkomponente auf einem Core-Gerät bereitstellen. Weitere Informationen finden Sie unter dem Plattformüberschreibungsparameter der Greengrass-Kernkomponente .

Gehen Sie unter Lambda-Funktionskonfiguration, Zusätzliche Parameter, Plattformen wie folgt vor, um die Plattformen anzugeben, die diese Lambda-Funktion unterstützt.

  1. Geben Sie für jede Plattform die folgenden Optionen an:

    • Betriebssystem – Der Name des Betriebssystems für die Plattform. Derzeit wird als einziger Wert unterstütz linux.

    • Architektur – Die Prozessorarchitektur für die Plattform. Unterstützte Werte sind:

      • amd64

      • arm

      • aarch64

      • x86

  2. Um eine weitere Plattform hinzuzufügen, wählen Sie Plattform hinzufügen und wiederholen Sie den vorherigen Schritt. Um eine unterstützte Plattform zu entfernen, wählen Sie neben der Plattform, die Sie entfernen möchten, Entfernen aus.

Schritt 4: (Optional) Angeben von Komponentenabhängigkeiten für die Lambda-Funktion

Komponentenabhängigkeiten identifizieren zusätzliche von AWSbereitgestellte Komponenten oder benutzerdefinierte Komponenten, die Ihre Funktion verwendet. Wenn Sie die Lambda-Funktionskomponente bereitstellen, enthält die Bereitstellung diese Abhängigkeiten für die Ausführung Ihrer Funktion.

Wichtig

Um eine Lambda-Funktion zu importieren, die Sie für die Ausführung auf AWS IoT Greengrass V1 erstellt haben, müssen Sie individuelle Komponentenabhängigkeiten für die Funktionen definieren, die Ihre Funktion verwendet, z. B. Secrets, lokale Schatten und Stream-Manager. Definieren Sie diese Komponenten als harte Abhängigkeiten, sodass Ihre Lambda-Funktionskomponente neu gestartet wird, wenn sich die Abhängigkeit ändert. Weitere Informationen finden Sie unter Importieren von V1-Lambda-Funktionen.

Führen Sie unter Lambda-Funktionskonfiguration, Zusätzliche Parameter, Komponentenabhängigkeiten die folgenden Schritte aus, um die Komponentenabhängigkeiten für Ihre Lambda-Funktion anzugeben.

  1. Wählen Sie Abhängigkeit hinzufügen aus.

  2. Geben Sie für jede Komponentenabhängigkeit, die Sie hinzufügen, die folgenden Optionen an:

    • Komponentenname – Der Komponentenname. Geben Sie beispielsweise ein, aws.greengrass.StreamManager um die Stream-Manager-Komponente einzuschließen.

    • Versionsanforderung – Die semantische Versionseinschränkung im npm-Stil, die die kompatiblen Versionen dieser Komponentenabhängigkeit identifiziert. Sie können eine einzelne Version oder einen Bereich von Versionen angeben. Geben Sie beispielsweise ein, ^1.0.0 um anzugeben, dass diese Lambda-Funktion von einer beliebigen Version in der ersten Hauptversion der Stream-Manager-Komponente abhängt. Weitere Informationen zu semantischen Versionseinschränkungen finden Sie im npm-Semver-Rechner .

    • Typ – Der Typ der Abhängigkeit. Wählen Sie aus den folgenden Optionen aus:

      • Hard – Die Lambda-Funktionskomponente wird neu gestartet, wenn sich die Abhängigkeit ändert. Dies ist die Standardauswahl.

      • Soft – Die Lambda-Funktionskomponente wird nicht neu gestartet, wenn sich die Abhängigkeit ändert.

  3. Um eine Komponentenabhängigkeit zu entfernen, wählen Sie Entfernen neben der Komponentenabhängigkeit

Schritt 5: (Optional) Ausführen der Lambda-Funktion in einem Container

Standardmäßig werden Lambda-Funktionen in einer isolierten Laufzeitumgebung innerhalb der AWS IoT Greengrass Core-Software ausgeführt. Sie können die Lambda-Funktion auch als Prozess ohne Isolierung ausführen (d. h. im Modus Kein Container).

Wählen Sie unter Linux-Prozesskonfiguration für Isolationsmodus eine der folgenden Optionen aus, um die Containerisierung für Ihre Lambda-Funktion auszuwählen:

  • Greengrass-Container – Die Lambda-Funktion wird in einem Container ausgeführt. Dies ist die Standardauswahl.

  • Kein Container – Die Lambda-Funktion wird als Prozess ohne Isolierung ausgeführt.

Wenn Sie die Lambda-Funktion in einem Container ausführen, führen Sie die folgenden Schritte aus, um die Prozesskonfiguration für die Lambda-Funktion zu konfigurieren.

  1. Konfigurieren Sie die Speichermenge und die Systemressourcen, wie Volumes und Geräte, um sie dem Container zur Verfügung zu stellen.

    Gehen Sie unter Containerparameter wie folgt vor.

    1. Geben Sie für Speichergröße die Speichergröße ein, die Sie dem Container zuweisen möchten. Sie können die Speichergröße in MB oder kB angeben.

    2. Wählen Sie unter Schreibgeschützter Sys-Ordner aus, ob der Container Informationen aus dem /sys Geräteordner lesen kann oder nicht. Der Standardwert ist False .

  2. (Optional) Konfigurieren Sie die lokalen Volumes, auf die die containerisierte Lambda-Funktion zugreifen kann. Wenn Sie ein Volume definieren, mountet die AWS IoT Greengrass Core-Software die Quelldateien in das Ziel innerhalb des Containers.

    1. Wählen Sie unter Volumes die Option Volume hinzufügen aus.

    2. Geben Sie für jedes Volume, das Sie hinzufügen, die folgenden Optionen an:

      • Physisches Volume – Der Pfad zum Quellordner auf dem Core-Gerät.

      • Logisches Volume – Der Pfad zum Zielordner im Container.

      • Berechtigung – (Optional) Die Berechtigung für den Zugriff auf den Quellordner aus dem Container. Wählen Sie aus den folgenden Optionen aus:

        • Schreibgeschützt – Die Lambda-Funktion hat schreibgeschützten Zugriff auf den Quellordner. Dies ist die Standardauswahl.

        • Lese-/Schreibzugriff – Die Lambda-Funktion hat Lese-/Schreibzugriff auf den Quellordner.

      • Gruppenbesitzer hinzufügen – (Optional) Gibt an, ob die Systemgruppe, die die Lambda-Funktionskomponente ausführt, als Eigentümer des Quellordners hinzugefügt werden soll oder nicht. Der Standardwert ist False .

    3. Um ein Volume zu entfernen, wählen Sie Entfernen neben dem Volume aus, das Sie entfernen möchten.

  3. (Optional) Konfigurieren Sie die lokalen Systemgeräte, auf die die containerisierte Lambda-Funktion zugreifen kann.

    1. Wählen Sie unter Geräte die Option Gerät hinzufügen aus.

    2. Geben Sie für jedes Gerät, das Sie hinzufügen, die folgenden Optionen an:

      • Mount-Pfad – Der Pfad zum Systemgerät auf dem Core-Gerät.

      • Berechtigung – (Optional) Die Berechtigung für den Zugriff auf das Systemgerät vom Container aus. Wählen Sie aus den folgenden Optionen aus:

        • Schreibgeschützt – Die Lambda-Funktion hat schreibgeschützten Zugriff auf das Systemgerät. Dies ist die Standardauswahl.

        • Lese-/Schreibzugriff – Die Lambda-Funktion hat Lese-/Schreibzugriff auf den Quellordner.

      • Gruppenbesitzer hinzufügen – (Optional) Gibt an, ob die Systemgruppe hinzugefügt werden soll, die die Lambda-Funktionskomponente als Eigentümer des Systemgeräts ausführt. Der Standardwert ist False .

Schritt 6: Erstellen der Lambda-Funktionskomponente

Nachdem Sie die Einstellungen für Ihre Lambda-Funktionskomponente konfiguriert haben, wählen Sie Erstellen, um die Erstellung der neuen Komponente abzuschließen.

Um die Lambda-Funktion auf Ihrem Core-Gerät auszuführen, können Sie dann die neue Komponente auf Ihren Core-Geräten bereitstellen. Weitere Informationen finden Sie unter Bereitstellen von AWS IoT Greengrass Komponenten auf Geräten.