Steuern der Ausführung von Greengrass-Lambda-Funktionen mithilfe einer gruppenspezifischen Konfiguration - AWS IoT Greengrass

AWS IoT Greengrass Version 1 hat am 30. Juni 2023 in die Phase der verlängerten Lebensdauer aufgenommen. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie . Nach diesem Datum AWS IoT Greengrass V1 wurden keine Updates veröffentlicht, die Funktionen, Verbesserungen, Fehlerbehebungen oder Sicherheitspatches bereitstellen. Geräte, die auf ausgeführt AWS IoT Greengrass V1 werden, werden nicht unterbrochen und werden weiterhin betrieben und eine Verbindung zur Cloud herstellen. Wir empfehlen dringend, zu zu migrieren AWS IoT Greengrass Version 2, was erhebliche neue Funktionen und Unterstützung für zusätzliche Plattformen hinzufügt.

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.

Steuern der Ausführung von Greengrass-Lambda-Funktionen mithilfe einer gruppenspezifischen Konfiguration

AWS IoT Greengrass bietet eine cloudbasierte Verwaltung von Greengrass-Lambda-Funktionen. Obwohl der Code und die Abhängigkeiten einer Lambda-Funktion mit verwaltet werdenAWS Lambda, können Sie konfigurieren, wie sich die Lambda-Funktion verhält, wenn sie in einer Greengrass-Gruppe ausgeführt wird.

Gruppenspezifische Konfigurationseinstellungen

AWS IoT Greengrass stellt die folgenden gruppenspezifischen Konfigurationseinstellungen für Greengrass-Lambda-Funktionen bereit.

Systembenutzer und -gruppe

Die Zugriffsidentität, die zum Ausführen einer Lambda-Funktion verwendet wird. Standardmäßig werden Lambda-Funktionen als Standardzugriffsidentität der Gruppe ausgeführt. In der Regel ist dies das standardmäßige AWS IoT Greengrass-Systemkonto (ggc_user und ggc_group). Sie können die Einstellung ändern und die Benutzer-ID und die Gruppen-ID auswählen, die über die erforderlichen Berechtigungen zum Ausführen der Lambda-Funktion verfügen. Sie können sowohl die UID als auch die GID oder durch Leerlassen eines der Felder nur eine davon überschreiben. Diese Einstellung bietet Ihnen eine genauere Kontrolle über den Zugriff auf Geräte-Ressourcen. Wir empfehlen Ihnen, Ihre Greengrass-Hardware mit entsprechenden Ressourcenlimits, Dateiberechtigungen und Festplattenkontingenten für die Benutzer und Gruppen zu konfigurieren, deren Berechtigungen zum Ausführen von Lambda-Funktionen verwendet werden.

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

Wichtig

Wir empfehlen, Lambda-Funktionen nicht als Root auszuführen, sofern dies nicht unbedingt erforderlich ist. Wenn Sie als Root ausführen, erhöht sich das folgende Risiko:

  • Das Risiko unbeabsichtigter Änderungen, z. B. versehentliches Löschen einer kritischen Datei.

  • Das Risiko für Ihre Daten und Ihr Gerät durch böswillige Personen.

  • Das Risiko von Container-Escapes, wenn Docker-Container mit --net=host und ausgeführt werdenUID=EUID=0.

Wenn Sie eine Ausführung als Root wünschen, müssen Sie die AWS IoT Greengrass-Konfiguration entsprechend aktualisieren. Weitere Informationen finden Sie unter Ausführen einer Lambda-Funktion als Root.

Systembenutzer-ID (Nummer)

Die Benutzer-ID für den Benutzer, der über die erforderlichen Berechtigungen zum Ausführen der Lambda-Funktion verfügt. Diese Einstellung ist nur verfügbar, wenn Sie als Andere Benutzer-ID/Gruppen-ID ausführen möchten. Sie können den getent passwd Befehl auf Ihrem AWS IoT Greengrass Core-Gerät verwenden, um die Benutzer-ID zu suchen, die Sie zum Ausführen der Lambda-Funktion verwenden möchten.

Wenn Sie dieselbe UID verwenden, um Prozesse und die Lambda-Funktion auf einem Greengrass-Kerngerät auszuführen, kann Ihre Greengrass-Gruppenrolle den Prozessen temporäre Anmeldeinformationen erteilen. Die Prozesse können die temporären Anmeldeinformationen für alle Greengrass-Kernbereitstellungen verwenden.

Systemgruppen-ID (Nummer)

Die Gruppen-ID für die Gruppe, die über die erforderlichen Berechtigungen zum Ausführen der Lambda-Funktion verfügt. Diese Einstellung ist nur verfügbar, wenn Sie als Andere Benutzer-ID/Gruppen-ID ausführen möchten. Sie können den getent group Befehl auf Ihrem AWS IoT Greengrass Core-Gerät verwenden, um die Gruppen-ID zu suchen, die Sie zum Ausführen der Lambda-Funktion verwenden möchten.

Containerisierung von Lambda-Funktionen

Wählen Sie aus, ob die Lambda-Funktion mit der Standard-Containerisierung für die Gruppe ausgeführt wird, oder geben Sie die Containerisierung an, die immer für diese Lambda-Funktion verwendet werden soll.

Der Containerisierungsmodus einer Lambda-Funktion bestimmt seinen Isolationsgrad.

  • Containerisierte Lambda-Funktionen werden im Greengrass-Containermodus ausgeführt. Die Lambda-Funktion wird in einer isolierten Laufzeitumgebung (oder einem Namespace) innerhalb des AWS IoT Greengrass Containers ausgeführt.

  • Nicht containerisierte Lambda-Funktionen werden im Modus Kein Container ausgeführt. Die Lambda-Funktionen werden als regulärer Linux-Prozess ohne Isolierung ausgeführt.

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

Wir empfehlen, Lambda-Funktionen in einem Greengrass-Container auszuführen, es sei denn, Ihr Anwendungsfall erfordert, dass sie ohne Containerisierung ausgeführt werden. Wenn Ihre Lambda-Funktionen in einem Greengrass-Container ausgeführt werden, können Sie angeschlossene lokale Ressourcen und Geräteressourcen verwenden und die Vorteile der Isolation und der erhöhten Sicherheit nutzen. Bevor Sie die Containerisierung ändern, schlagen Sie unter Überlegungen bei der Auswahl der Containerisierung von Lambda-Funktionen nach.

Anmerkung

Um auszuführen, ohne Ihren Geräte-Kernel-Namespace und Ihre Cgroup zu aktivieren, müssen alle Ihre Lambda-Funktionen ohne Containerisierung ausgeführt werden. Sie können dies leicht erreichen, indem Sie für die Gruppe die Standardeinstellung der Containerisierung festlegen. Weitere Informationen finden Sie unter Festlegen der Standard-Containerisierung für Lambda-Funktionen in einer Gruppe.

Speicherlimit

Die Speicherzuweisung für die Funktion. Der Standardwert ist 16 MB.

Anmerkung

Die Einstellung für das Speicherlimit ist nicht verfügbar, wenn Sie die Lambda-Funktion so ändern, dass sie ohne Containerisierung ausgeführt wird. Lambda-Funktionen, die ohne Containerisierung ausgeführt werden, haben kein Speicherlimit. Die Einstellung für das Speicherlimit wird verworfen, wenn Sie die Standardeinstellung für die Containerisierung der Lambda-Funktion oder -Gruppe so ändern, dass sie ohne Containerisierung ausgeführt wird.

Timeout (Zeitüberschreitung)

Die Dauer vor Beendigung der Funktion oder Anforderung. Der Standardwert ist 3 Sekunden.

Angeheftet

Ein Lambda-Funktionslebenszyklus kann On-Demand oder langlebig sein. Die Standardeinstellung ist „On-Demand“.

Eine On-Demand-Lambda-Funktion beginnt in einem neuen oder wiederverwendeten Container, wenn sie aufgerufen wird. Anforderungen an die Funktion werden möglicherweise von allen verfügbaren Containern verarbeitet. Eine langlebige oder angeheftete Lambda-Funktion wird nach dem AWS IoT Greengrass Start automatisch gestartet und läuft weiterhin in einem eigenen Container (oder einer Sandbox). Alle Anforderungen an die Funktion werden vom gleichen Container verarbeitet. Weitere Informationen finden Sie unter Lebenszykluskonfiguration für Greengrass-Lambda-Funktionen.

Lesezugriff auf das /sys-Verzeichnis

Ob die Funktion auf den /sys-Ordner des Hosts zugreifen kann. Verwenden Sie diese Einstellung, wenn die Funktion Geräteinformationen aus /sys lesen muss. Der Standardwert lautet „false“.

Anmerkung

Diese Einstellung ist nicht verfügbar, wenn Sie eine Lambda-Funktion ohne Containerisierung ausführen. Der Wert dieser Einstellung wird verworfen, wenn Sie die Lambda-Funktion so ändern, dass sie ohne Containerisierung ausgeführt wird.

Codierungstyp

Der erwartete Kodierungstyp der Eingabenutzlast für die Funktion: JSON oder Binär. Der Standardwert ist JSON.

Unterstützung für den binären Kodierungstyp ist ab AWS IoT Greengrass Core-Software v1.5.0 und AWS IoT Greengrass Core SDK v1.1.0 verfügbar. Bei Funktionen die bei der Gerätedaten interagieren, kann es nützlich sein, binäre Eingabedaten zu akzeptieren, da es die eingeschränkten Hardware-Funktionen von Geräten oft schwierig oder gar unmöglich machen, einen JSON-Datentyp zu erstellen.

Anmerkung

Lambda-ausführbare Dateien unterstützen nur den Binärkodierungstyp, nicht JSON.

Prozessargumente

Die Befehlszeilenargumente werden bei der Ausführung an die Lambda-Funktion übergeben.

Umgebungsvariablen

Schlüssel-Wert-Paare, die Einstellungen dynamisch an Funktionscode und -bibliotheken übergeben. Lokale Umgebungsvariablen funktionieren auf die gleiche Weise wie AWS Lambda-Funktionsumgebungsvariablen, sind aber in der Core-Umgebung verfügbar.

Resource access policies (Richtlinien für Ressourcenzugriff)

Eine Liste von bis zu 10 lokalen Ressourcen, geheimen Ressourcen und Machine-Learning-RessourcenDurchführen von Machine Learning-Inferenzen, auf die die Lambda-Funktion zugreifen darf, sowie die entsprechende - read-only oder -read-writeBerechtigung. In der -Konsole werden diese zugehörigen Ressourcen auf der Gruppenkonfigurationsseite auf der Registerkarte Ressourcen aufgeführt.

Der Containerisierungsmodus wirkt sich darauf aus, wie Lambda-Funktionen auf lokale Geräte- und Volume-Ressourcen sowie Machine-Learning-Ressourcen zugreifen können.

  • Nicht containerisierte Lambda-Funktionen müssen direkt über das Dateisystem auf dem Core-Gerät auf lokale Geräte- und Volume-Ressourcen zugreifen.

  • Damit nicht containerisierte Lambda-Funktionen auf Machine-Learning-Ressourcen in der Greengrass-Gruppe zugreifen können, müssen Sie die Eigenschaften des Ressourcenbesitzers und der Zugriffsberechtigungen für die Machine-Learning-Ressource festlegen. Weitere Informationen finden Sie unter Zugriff auf Machine-Learning-Ressourcen über Lambda-Funktionen.

Informationen zur Verwendung der AWS IoT Greengrass API zum Festlegen gruppenspezifischer Konfigurationseinstellungen für benutzerdefinierte Lambda-Funktionen finden Sie unter CreateFunctionDefinition in der AWS IoT Greengrass Version 1 API-Referenz oder create-function-definition in der AWS CLI -Befehlsreferenz. Um Lambda-Funktionen auf einem Greengrass-Kern bereitzustellen, erstellen Sie eine Version der Funktionsdefinition, die Ihre Funktionen enthält, erstellen Sie eine Gruppenversion, die auf die Version der Funktionsdefinition und andere Gruppenkomponenten verweist, und stellen Sie dann die Gruppe bereit.

Ausführen einer Lambda-Funktion als Root

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

Bevor Sie eine oder mehrere Lambda-Funktionen als Stamm ausführen können, müssen Sie zuerst die AWS IoT Greengrass Konfiguration aktualisieren, um den Support zu aktivieren. Die Unterstützung für die Ausführung von Lambda-Funktionen als Root ist standardmäßig deaktiviert. Die Bereitstellung schlägt fehl, wenn Sie versuchen, eine Lambda-Funktion bereitzustellen und sie als Stamm (UID und GID von 0) ausführen und Sie die AWS IoT Greengrass Konfiguration nicht aktualisiert haben. Im Laufzeitprotokoll (greengrass_root/ggc/var/log/system/runtime.log) wird ein Fehler ähnlich dem folgenden verzeichnet:

lambda(s) [list of function arns] are configured to run as root while Greengrass is not configured to run lambdas with root permissions
Wichtig

Wir empfehlen, Lambda-Funktionen nicht als Root auszuführen, sofern dies nicht unbedingt erforderlich ist. Wenn Sie als Root ausführen, erhöht sich das folgende Risiko:

  • Das Risiko unbeabsichtigter Änderungen, z. B. versehentliches Löschen einer kritischen Datei.

  • Das Risiko für Ihre Daten und Ihr Gerät durch böswillige Personen.

  • Das Risiko von Container-Escapes, wenn Docker-Container mit --net=host und ausgeführt werdenUID=EUID=0.

So erlauben Sie die Ausführung von Lambda-Funktionen als Root
  1. Wechseln Sie auf Ihrem AWS IoT Greengrass-Gerät zum Ordner greengrass-root/config.

    Anmerkung

    Standardmäßig ist greengrass-root das /greengrass-Verzeichnis.

  2. Bearbeiten Sie die Datei config.json, indem Sie "allowFunctionsToRunAsRoot" : "yes" zum Feld runtime hinzufügen. Beispielsweise:

    { "coreThing" : { ... }, "runtime" : { ... "allowFunctionsToRunAsRoot" : "yes" }, ... }
  3. Starten Sie AWS IoT Greengrass mit den folgenden Befehlen neu:

    cd /greengrass/ggc/core sudo ./greengrassd restart

    Jetzt können Sie die Benutzer-ID und Gruppen-ID (UID/GID) von Lambda-Funktionen auf 0 setzen, um diese Lambda-Funktion als Stamm auszuführen.

Sie können den Wert von "allowFunctionsToRunAsRoot" in ändern "no" und neu startenAWS IoT Greengrass, wenn Sie die Ausführung von Lambda-Funktionen als Stamm verhindern möchten.

Überlegungen bei der Auswahl der Containerisierung von Lambda-Funktionen

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

Standardmäßig werden Lambda-Funktionen in einem -AWS IoT GreengrassContainer ausgeführt. Dieser Container schafft eine Isolierung zwischen Ihren Funktionen und dem Host und bietet zusätzliche Sicherheit sowohl für den Host als auch für die Funktionen im Container.

Wir empfehlen, Lambda-Funktionen in einem Greengrass-Container auszuführen, es sei denn, Ihr Anwendungsfall erfordert, dass sie ohne Containerisierung ausgeführt werden. Durch die Ausführung Ihrer Lambda-Funktionen in einem Greengrass-Container haben Sie mehr Kontrolle über die Einschränkung des Zugriffs auf -Ressourcen.

Es folgen einige Beispiel-Anwendungsfälle für die Ausführung ohne Containerisierung:

  • Sie möchten AWS IoT Greengrass auf einem Gerät ausführen, das den Container-Modus nicht unterstützt (weil Sie beispielsweise eine spezielle Linux-Verteilung verwenden oder die Kernel-Version zu alt ist).

  • Sie möchten Ihre Lambda-Funktion in einer anderen Container-Umgebung mit eigenem OverlayFS ausführen, aber es treten OverlayFS-Konflikte auf, wenn Sie in einem Greengrass-Container ausführen.

  • Sie benötigen Zugriff auf lokale Ressourcen, deren Pfade zum Zeitpunkt der Bereitstellung nicht bestimmt werden oder sich nach der Bereitstellung ändern können, wie z. B. Plug-In-Geräte.

  • Sie haben eine Legacy-Anwendung, die als Prozess geschrieben wurde, und es sind Probleme aufgetreten, wenn Sie sie als containerisierte Lambda-Funktion ausführen.

Containerisierungsunterschiede
Containerisierung Hinweise

Greengrass-Container

  • Alle AWS IoT Greengrass Funktionen sind verfügbar, wenn Sie eine Lambda-Funktion in einem Greengrass-Container ausführen.

  • Lambda-Funktionen, die in einem Greengrass-Container ausgeführt werden, haben keinen Zugriff auf den bereitgestellten Code anderer Lambda-Funktionen, auch wenn sie mit derselben Gruppen-ID ausgeführt werden. Mit anderen Worten, Ihre Lambda-Funktionen werden mit einer größeren Isolation voneinander ausgeführt.

  • Da Lambda-Funktionen, die in einem -AWS IoT GreengrassContainer ausgeführt werden, alle untergeordneten Prozesse im selben Container wie die Lambda-Funktion ausgeführt werden, werden die untergeordneten Prozesse beendet, wenn die Lambda-Funktion beendet wird.

Kein Container

  • Die folgenden Funktionen sind für nicht containerisierte Lambda-Funktionen nicht verfügbar:

    • Speicherlimits für Lambda-Funktionen.

    • Lokale Geräte- und Volume-Ressourcen Sie müssen direkt auf diese Ressourcen auf dem Core-Gerät zugreifen, anstatt als Mitglieder der Greengrass-Gruppe auf sie zuzugreifen.

  • Wenn Ihre nicht containerisierte Lambda-Funktion auf eine Machine-Learning-Ressource zugreift, müssen Sie einen Ressourcenbesitzer identifizieren und Zugriffsberechtigungen für die Ressource festlegen, nicht für die Lambda-Funktion. Dazu ist AWS IoT Greengrass Core-Software v1.10 oder höher erforderlich. Weitere Informationen finden Sie unter Zugriff auf Machine-Learning-Ressourcen über Lambda-Funktionen.

  • Die Lambda-Funktion hat schreibgeschützten Zugriff auf den bereitgestellten Code anderer Lambda-Funktionen, die mit derselben Gruppen-ID ausgeführt werden.

  • Lambda-Funktionen, die untergeordnete Prozesse in einer anderen Prozesssitzung oder mit einem überschriebenen SIGHUP-Handler (Signal hangup) auslösen, z. B. mit dem Nohup-Dienstprogramm, werden nicht automatisch von beendet, AWS IoT Greengrass wenn die übergeordnete Lambda-Funktion beendet wird.

Anmerkung

Die Standardeinstellung für Containerisierung für die Greengrass-Gruppe gilt nicht für Konnektoren.

Das Ändern der Containerisierung für eine Lambda-Funktion kann zu Problemen führen, wenn Sie sie bereitstellen. Wenn Sie Ihrer Lambda-Funktion lokale Ressourcen zugewiesen haben, die mit Ihren neuen Containerisierungseinstellungen nicht mehr verfügbar sind, schlägt die Bereitstellung fehl.

  • Wenn Sie eine Lambda-Funktion von der Ausführung in einem Greengrass-Container in die Ausführung ohne Containerisierung ändern, werden Speicherlimits für die Funktion verworfen. Sie müssen direkt auf das Dateisystem zugreifen, anstatt verknüpfte lokale Ressourcen zu verwenden. Vor der Bereitstellung müssen Sie alle verknüpften Ressourcen entfernen.

  • Wenn Sie eine Lambda-Funktion von ohne Containerisierung in eine Ausführung in einem Container ändern, verliert Ihre Lambda-Funktion direkten Zugriff auf das Dateisystem. Sie müssen für jede Funktion ein Speicherlimit definieren oder den Standard 16 MB übernehmen. Sie können diese Einstellungen für jede Lambda-Funktion konfigurieren, bevor Sie sie bereitstellen.

So ändern Sie die Containerisierungseinstellungen für eine Lambda-Funktion
  1. Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.

  2. Wählen Sie die Gruppe aus, die die Lambda-Funktion enthält, deren Einstellungen Sie ändern möchten.

  3. Wählen Sie die Registerkarte Lambda-Funktionen aus.

  4. Wählen Sie in der Lambda-Funktion, die Sie ändern möchten, die Ellipse (...) und dann Konfiguration bearbeiten aus.

  5. Ändern Sie die Containerisierungseinstellungen. Wenn Sie die Lambda-Funktion für die Ausführung in einem Greengrass-Container konfigurieren, müssen Sie auch das Speicherlimit und den Lesezugriff auf das Verzeichnis /sys festlegen.

  6. Wählen Sie Speichern und dann Bestätigen, um die Änderungen an Ihrer Lambda-Funktion zu speichern.

Die Änderungen werden wirksam, wenn die Gruppe bereitgestellt wird.

Sie können auch die CreateFunctionDefinition und CreateFunctionDefinitionVersion in der AWS IoT Greengrass API-Referenz zu verwenden. Wenn Sie die Containerisierungseinstellung ändern, müssen Sie auch die anderen Parameter aktualisieren. Wenn Sie beispielsweise von der Ausführung einer Lambda-Funktion in einem Greengrass-Container zur Ausführung ohne Containerisierung wechseln, müssen Sie den MemorySize Parameter löschen.

Bestimmen der von Ihrem Greengrass-Gerät unterstützten Isolierungsmodi

Mithilfe des AWS IoT Greengrass-Abhängigkeitsprüfers können Sie bestimmen, welche Isolierungsmodi (Greengrass-Container/kein Container) von Ihrem Greengrass-Gerät unterstützt werden.

So führen Sie den AWS IoT Greengrass-Abhängigkeitsprüfer aus
  1. Laden Sie den AWS IoT Greengrass Abhängigkeitsprüfer aus dem GitHub Repository herunter und führen Sie ihn aus.

    wget https://github.com/aws-samples/aws-greengrass-samples/raw/master/greengrass-dependency-checker-GGCv1.11.x.zip unzip greengrass-dependency-checker-GGCv1.11.x.zip cd greengrass-dependency-checker-GGCv1.11.x sudo modprobe configs sudo ./check_ggc_dependencies | more
  2. Wenn more erscheint, drücken Sie die Spacebar-Taste, um eine weitere Textseite anzuzeigen.

Weitere Information zum Befehl modprobe erhalten Sie, wenn Sie man modprobe im Terminal ausführen.

Festlegen der Standardzugriffsidentität für Lambda-Funktionen in einer Gruppe

Diese Funktion ist für AWS IoT Greengrass Core v1.8 und höher verfügbar.

Um den Zugriff auf Geräteressourcen besser kontrollieren zu können, können Sie die Standardzugriffsidentität konfigurieren, die zum Ausführen von Lambda-Funktionen in der Gruppe verwendet wird. Diese Einstellung bestimmt die Standardberechtigungen, die Ihren Lambda-Funktionen gewährt werden, wenn sie auf dem Core-Gerät ausgeführt werden. Um die Einstellung für einzelne Funktionen in der Gruppe zu überschreiben, können Sie die Run as (Ausführen als)-Eigenschaft der Gruppe verwenden. Weitere Informationen hierzu finden Sie unter Run as (Ausführen als).

Diese Einstellung auf Gruppenebene wird auch zur Ausführung der zugrunde liegenden AWS IoT Greengrass Core-Software verwendet. Dies besteht aus System-Lambda-Funktionen, die Vorgänge wie Nachrichtenweiterleitung, lokale Schattensynchronisierung und automatische IP-Adresserkennung verwalten.

Die Standardzugriffsidentität kann so konfiguriert werden, dass sie als Konten des AWS IoT Greengrass-Standardsystems (ggc_user und ggc_group) ausgeführt wird oder die Berechtigungen eines anderen Benutzers oder einer anderen Gruppe verwendet. Wir empfehlen Ihnen, Ihre Greengrass-Hardware mit entsprechenden Ressourcenlimits, Dateiberechtigungen und Festplattenkontingenten für alle Benutzer und Gruppen zu konfigurieren, deren Berechtigungen zum Ausführen benutzerdefinierter oder System-Lambda-Funktionen verwendet werden.

So ändern Sie die Standardzugriffsidentität für Ihre AWS IoT Greengrass-Gruppe
  1. Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.

  2. Wählen Sie die Gruppe aus, deren Einstellungen Sie ändern möchten.

  3. Wählen Sie die Registerkarte Lambda-Funktionen und wählen Sie im Abschnitt Standardumgebung der Lambda-Funktionslaufzeit die Option Bearbeiten aus.

  4. Wählen Sie auf der Seite Standardumgebung der Lambda-Funktionslaufzeit bearbeiten unter Standardsystembenutzer und -gruppe die Option Andere Benutzer-ID/Gruppen-ID aus.

    Wenn Sie diese Option wählen, werden die Felder Systembenutzer-ID (Nummer) und Systemgruppen-ID (Nummer) angezeigt.

  5. Geben Sie eine Benutzer-ID, eine Gruppen-ID oder beides ein. Wenn Sie ein Feld leer lassen, wird das entsprechende Greengrass-Systemkonto (ggc_user oder ggc_group) verwendet.

    • Geben Sie für Systembenutzer-ID (Nummer) die Benutzer-ID für den Benutzer ein, der über die Berechtigungen verfügt, die Sie standardmäßig zum Ausführen von Lambda-Funktionen in der Gruppe verwenden möchten. Mit dem Befehl getent passwd auf Ihrem AWS IoT Greengrass-Gerät können Sie die Benutzer-ID abrufen.

    • Geben Sie für Systemgruppen-ID (Nummer) die Gruppen-ID für die Gruppe ein, die standardmäßig über die Berechtigungen verfügt, die Sie zum Ausführen von Lambda-Funktionen in der Gruppe verwenden möchten. Mit dem Befehl getent group auf Ihrem AWS IoT Greengrass-Gerät können Sie die Gruppen-ID abrufen.

    Wichtig

    Die Ausführung als Root-Benutzer erhöht die Risiken für Ihre Daten und Geräte. Nicht als Root-Benutzer (UID/GID = 0) ausführen, sofern es Ihr Business Case nicht erfordert. Weitere Informationen finden Sie unter Ausführen einer Lambda-Funktion als Root.

Die Änderungen werden wirksam, wenn die Gruppe bereitgestellt wird.

Festlegen der Standard-Containerisierung für Lambda-Funktionen in einer Gruppe

Diese Funktion ist für AWS IoT Greengrass Core v1.7 und höher verfügbar.

Die Containerisierungseinstellung für eine Greengrass-Gruppe bestimmt die Standardcontainerisierung für die Lambda-Funktionen in der Gruppe.

  • Im Greengrass-Containermodus werden Lambda-Funktionen standardmäßig in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Containers ausgeführt.

  • Im Modus Kein Container werden Lambda-Funktionen standardmäßig als reguläre Linux-Prozesse ausgeführt.

Sie können Gruppeneinstellungen ändern, um die Standardcontainerisierung für Lambda-Funktionen in der Gruppe anzugeben. Sie können diese Einstellung für eine oder mehrere Lambda-Funktionen in der Gruppe überschreiben, wenn Sie möchten, dass die Lambda-Funktionen mit einer anderen Containerisierung als der Standardeinstellung der Gruppe ausgeführt werden. Bevor Sie die Containerisierungseinstellungen ändern, schlagen Sie unter Überlegungen bei der Auswahl der Containerisierung von Lambda-Funktionen nach.

Wichtig

Wenn Sie die Standardcontainerisierung für die Gruppe ändern möchten, aber über eine oder mehrere Funktionen verfügen, die eine andere Containerisierung verwenden, ändern Sie die Einstellungen für die Lambda-Funktionen, bevor Sie die Gruppeneinstellung ändern. Wenn Sie zuerst die Containerisierungseinstellung der Gruppe ändern, werden die Werte für die Einstellungen Speicherlimit und Lesezugriff auf das /sys-Verzeichnis verworfen.

So ändern Sie die Containerisierungseinstellungen für Ihre AWS IoT Greengrass-Gruppe
  1. Erweitern Sie im Navigationsbereich der AWS IoTKonsole unter Verwalten die Option Greengrass-Geräte und wählen Sie dann Gruppen (V1) aus.

  2. Wählen Sie die Gruppe aus, deren Einstellungen Sie ändern möchten.

  3. Wählen Sie die Registerkarte Lambda-Funktionen aus.

  4. Wählen Sie unter Standardumgebung der Lambda-Funktionslaufzeit die Option Bearbeiten aus.

  5. Ändern Sie auf der Seite Bearbeiten der standardmäßigen Lambda-Funktionslaufzeitumgebung unter Standard-Lambda-Funktionscontainerisierung die Containerisierungseinstellung.

  6. Wählen Sie Speichern.

Die Änderungen werden wirksam, wenn die Gruppe bereitgestellt wird.