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.
Greifen Sie mit Lambda-Funktionen und -Konnektoren auf lokale Ressourcen zu
Diese Funktion ist fürAWS IoT Greengrass Core v1.3 und höher verfügbar.
Mit AWS IoT Greengrass können Sie AWS Lambda-Funktionen erstellen und Konnektoren in der Cloud konfigurieren und auf Core-Geräten zur lokalen Ausführung bereitstellen. Auf Greengrass-Kernen, auf denen Linux ausgeführt wird, können diese lokal bereitgestellten Lambda-Funktionen und -Connectors auf lokale Ressourcen zugreifen, die physisch auf dem Greengrass-Core-Gerät vorhanden sind. Um beispielsweise mit Geräten zu kommunizieren, die über Modbus oder CanBus verbunden sind, können Sie Ihre Lambda-Funktion so aktivieren, dass sie auf die serielle Schnittstelle des Kerngeräts zugreift. Um den sicheren Zugriff auf lokale Ressourcen zu konfigurieren, müssen Sie die Sicherheit der physischen Hardware sowie des Betriebssystems des Greengrass Core-Geräts gewährleisten.
Die ersten Schritte zum Zugriff auf lokale Ressourcen finden Sie in den folgenden Tutorials:
Unterstützte Ressourcentypen
Sie können auf zwei Arten lokaler Ressourcen zugreifen: Volume-Ressourcen und Geräteressourcen.
- Volume-Ressourcen
-
Dateien und Verzeichnisse auf dem Stammdateisystem (außer unter
/sys
,/dev
oder/var
). Dazu zählen:-
Ordner oder Dateien, die zum Lesen oder Schreiben von Informationen in den Funktionen von Greengrass Lambda verwendet werden (z. B.
/usr/lib/python2.x/site-packages/local
). -
Ordner oder Dateien unter dem /proc-Dateisystem des Hosts (z. B.
/proc/net
oder/proc/stat
). Wird in v1.6 oder höher unterstützt. Zusätzliche Anforderungen finden Sie unter Volume-Ressourcen im /proc-Verzeichnis.
Tipp
Um die Verzeichnisse
/var
,/var/run
und/var/lib
als Volume-Ressourcen zu konfigurieren, mounten Sie zunächst das Verzeichnis in einen anderen Ordner und konfigurieren diesen Ordner als Volume-Ressource.Wenn Sie Volume-Ressourcen konfigurieren, geben Sie einen Pfad für source (Quelle) und einen Pfad für destination (Ziel) an. Der Quellpfad ist der absolute Pfad der Ressource auf dem Host. Der Zielpfad ist der absolute Pfad der Ressource innerhalb der Lambda-Namespace-Umgebung. Dies ist der Container, in dem eine Greengrass Lambda-Funktion oder ein Greengrass Lambda-Connector ausgeführt wird. Änderungen am Zielpfad werden im Quellpfad des Dateisystems auf dem Host-Dateisystem wiedergegeben.
Anmerkung
Dateien im Zielpfad sind nur im Lambda-Namespace sichtbar. Sie können sie in einem regulären Linux-Namespace nicht sehen.
-
- Geräteressourcen
-
Dateien unter
/dev
. Nur zeichenorientierte Geräte oder Blockgeräte unter/dev
sind als Geräteressourcen zulässig. Dazu zählen:-
Serielle Ports, die für die Kommunikation mit über serielle Ports angeschlossenen Geräten verwendet werden (zum Beispiel
/dev/ttyS0
,/dev/ttyS1
). -
USB, die zum Anschließen von USB-Peripheriegeräten verwendet werden (zum Beispiel.
/dev/ttyUSB0
oder/dev/bus/usb
). -
GPIOs, die für Sensoren und Aktuatoren über GPIO verwendet werden (zum Beispiel
/dev/gpiomem
). -
GPUs, die verwendet werden, um Machine Learning über integrierte GPUs zu beschleunigen (zum Beispiel
/dev/nvidia0
). -
Kameras, mit denen Bilder und Videos erfasst werden (zum Beispiel
/dev/video0
).
Anmerkung
/dev/shm
ist eine Ausnahme. Sie kann nur als eine Volume-Ressource konfiguriert werden. Ressourcen unter/dev/shm
muss die Berechtigungrw
erteilt werden. -
AWS IoT Greengrass unterstützt auch Ressourcentypen, die für die Durchführung von Machine Learning-Inferenz verwendet werden. Weitere Informationen finden Sie unter Durchführen von Machine Learning-Inferenzen.
Voraussetzungen
Die folgenden Anforderungen gelten für die Konfiguration des sicheren Zugriffs auf lokale Ressourcen:
-
Sie müssenAWS IoT Greengrass Core Software v1.3 oder höher verwenden. Um Ressourcen für das /proc-Verzeichnis des Hosts zu erstellen, müssen Sie Version 1.6 oder höher verwenden.
-
Die lokale Ressource (einschließlich aller erforderlichen Treiber und Bibliotheken) muss ordnungsgemäß auf dem Greengrass Core-Gerät installiert sein und während der gesamten Nutzung zur Verfügung stehen.
-
Die gewünschte Operation der Ressource und der Zugriff auf die Ressource dürfen keine Root-Berechtigungen erfordern.
-
Nur die Berechtigung
read
oderread and write
ist verfügbar. Lambdafunktionen können keine privilegierten Operationen für die Ressourcen ausführen. -
Sie müssen den vollständigen Pfad der lokalen Ressource im Betriebssystem des Greengrass Core-Geräts bereitstellen.
-
Der Name oder die ID einer Ressource kann maximal 128 Zeichen umfassen und muss dem Muster
[a-zA-Z0-9:_-]+
entsprechen.
Volume-Ressourcen im /proc-Verzeichnis
Die folgenden Überlegungen gelten für Volume-Ressourcen im /proc-Verzeichnis des Hosts.
Sie müssenAWS IoT Greengrass Core Software v1.6 oder höher verwenden.
Sie können nur Lesezugriff für Lambda-Funktionen zulassen, aber keinen Lese-/Schreibzugriff. Diese Zugriffsebene wird von AWS IoT Greengrass verwaltet.
Möglicherweise müssen Sie auch Betriebssystemgruppen Berechtigungen erteilen, um Lesezugriff im Dateisystem zu aktivieren. Nehmen wir beispielsweise an, dass Ihr Quellverzeichnis oder Ihre Quelldatei über die Dateiberechtigung „660“ verfügt. Dies bedeutet, dass nur der Eigentümer bzw. der Benutzer in der Gruppe Lese- (oder Schreib)-Zugriff darauf hat. In diesem Fall müssen Sie die Berechtigungen des Besitzers der Betriebssystemgruppe der Ressource hinzufügen. Weitere Informationen finden Sie unter Dateizugriffsberechtigung des Gruppenbesitzers.
Die Host-Umgebung und der Lambda-Namespace enthalten beide ein /proc-Verzeichnis. Vermeiden Sie daher unbedingt Namenskonflikte, wenn Sie den Zielpfad angeben. Wenn/proc beispielsweise der Quellpfad ist, können Sie /host-proc als Zielpfad angeben (oder einen beliebigen anderen Namen anstelle von „/proc“).
Dateizugriffsberechtigung des Gruppenbesitzers
EinAWS IoT Greengrass Lambda-Funktionsprozess läuft normalerweise alsggc_user
undggc_group
. Sie können dem Lambda-Funktionsprozess in der lokalen Ressourcendefinition jedoch zusätzliche Dateizugriffsberechtigungen wie folgt erteilen:
-
Um die Berechtigungen der Linux-Gruppe hinzuzufügen, der die Ressource gehört, verwenden Sie den
GroupOwnerSetting#AutoAddGroupOwner
Parameter oder Die Option Automatisch Dateisystemberechtigungen der Systemgruppe hinzufügen, der die Ressourcenkonsole gehört. -
Um die Berechtigungen einer anderen Linux-Gruppe hinzuzufügen, verwenden Sie den
GroupOwnerSetting#GroupOwner
Parameter oder Die Konsolenoption Andere Systemgruppe angeben, um Dateisystemberechtigungen hinzuzufügen. Der WertGroupOwner
wird ignoriert, wennGroupOwnerSetting#AutoAddGroupOwner
auf "true" gesetzt ist.
EinAWS IoT Greengrass Lambda-Funktionsprozess erbt alle Dateisystemberechtigungen vonggc_user
ggc_group
, und der Linux-Gruppe (falls hinzugefügt). Damit die Lambda-Funktion auf eine Ressource zugreifen kann, muss der Lambda-Funktionsprozess über die erforderlichen Berechtigungen für die Ressource verfügen. Sie können die Berechtigung der Ressource gegebenenfalls mit dem chmod(1)
-Befehl ändern.
Weitere Informationen finden Sie auch unter
-
Servicekontingente für Ressourcen in der Allgemeine Amazon Web Services-Referenz