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.
Schritt 4: Entwickeln und Testen einer Komponente auf Ihrem Gerät
Eine Komponente ist ein Softwaremodul, das auf - AWS IoT Greengrass Core-Geräten ausgeführt wird. Mit Komponenten können Sie komplexe Anwendungen als diskrete Bausteine erstellen und verwalten, die Sie von einem Greengrass-Kerngerät zu einem anderen wiederverwenden können. Jede Komponente besteht aus einem Rezept und Artefakten .
-
Rezepte
Jede Komponente enthält eine Rezeptdatei, die ihre Metadaten definiert. Das Rezept gibt auch die Konfigurationsparameter, Komponentenabhängigkeiten, den Lebenszyklus und die Plattformkompatibilität der Komponente an. Der Komponentenlebenszyklus definiert die Befehle, die die Komponente installieren, ausführen und herunterfahren. Weitere Informationen finden Sie unter AWS IoT Greengrass Referenz zum Komponenten-Rezept.
-
Artefakte
Komponenten können eine beliebige Anzahl von Artefakten haben, bei denen es sich um Komponenten-Binärdateien handelt. Artefakte können Skripte, kompilierten Code, statische Ressourcen und alle anderen Dateien enthalten, die eine Komponente verbraucht. Komponenten können auch Artefakte aus Komponentenabhängigkeiten verwenden.
Mit können Sie die Greengrass-CLI verwenden AWS IoT Greengrass, um Komponenten lokal auf einem Greengrass-Kerngerät zu entwickeln und zu testen, ohne mit der AWS Cloud zu interagieren. Wenn Sie Ihre lokale Komponente abgeschlossen haben, können Sie das Komponentenrezept und die Artefakte verwenden, um diese Komponente im AWS IoT Greengrass Service in der AWS Cloud zu erstellen und sie dann auf allen Ihren Greengrass-Core-Geräten bereitzustellen. Weitere Informationen zu -Komponenten finden Sie unter Entwickeln von AWS IoT Greengrass Komponenten.
In diesem Abschnitt erfahren Sie, wie Sie eine grundlegende Hello-World-Komponente lokal auf Ihrem Core-Gerät erstellen und ausführen.
So entwickeln Sie eine Hello-World-Komponente auf Ihrem Gerät
-
Erstellen Sie einen Ordner für Ihre Komponenten mit Unterordnern für Rezepte und Artefakte. Führen Sie die folgenden Befehle auf Ihrem Greengrass-Core-Gerät aus, um diese Ordner zu erstellen und zum Komponentenordner zu wechseln. Ersetzen Sie
~/greengrassv2
oder%USERPROFILE%\greengrassv2
durch den Pfad zum Ordner, der für die lokale Entwicklung verwendet werden soll. -
Verwenden Sie einen Texteditor, um eine Rezeptdatei zu erstellen, die die Metadaten, Parameter, Abhängigkeiten, den Lebenszyklus und die Plattformfunktionen Ihrer Komponente definiert. Fügen Sie die Komponentenversion in den Rezeptdateinamen ein, damit Sie identifizieren können, welches Rezept welche Komponentenversion widerspiegelt. Sie können das YAML- oder JSON-Format für Ihr Rezept auswählen.
Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um GNU Nano zum Erstellen der Datei zu verwenden.
Anmerkung
AWS IoT Greengrass verwendet semantische Versionen für -Komponenten. Semantische Versionen folgen einem größeren Patch-Nummernsystem. Die -Version
1.0.0
stellt beispielsweise die erste Hauptversion für eine Komponente dar. Weitere Informationen finden Sie in der semantischen Versionsspezifikation. -
Fügen Sie das folgende Rezept in die Datei ein.
Der
ComponentConfiguration
Abschnitt dieses Rezepts definiert einen Parameter,Message
, der standardmäßig istworld
. DerManifests
Abschnitt definiert ein Manifest , bei dem es sich um eine Reihe von Lebenszyklusanweisungen und Artefakten für eine Plattform handelt. Sie können mehrere Manifeste definieren, um beispielsweise unterschiedliche Installationsanweisungen für verschiedene Plattformen anzugeben. Im Manifest weist derLifecycle
Abschnitt das Greengrass-Kerngerät an, das Hello-World-Skript mit demMessage
Parameterwert als Argument auszuführen. -
Führen Sie den folgenden Befehl aus, um einen Ordner für die Komponentenartefakte zu erstellen.
Wichtig
Sie müssen das folgende Format für den Pfad des Artefaktordners verwenden. Fügen Sie den Komponentennamen und die Version ein, die Sie im Rezept angeben.
artifacts/
componentName
/componentVersion
/ -
Verwenden Sie einen Texteditor, um eine Python-Skriptartefaktdatei für Ihre Hello-World-Komponente zu erstellen.
Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um GNU Nano zum Erstellen der Datei zu verwenden.
nano artifacts/com.example.HelloWorld/1.0.0/hello_world.py
Kopieren Sie das folgende Python-Skript und fügen Sie es in die Datei ein.
import sys message = "Hello, %s!" % sys.argv[1] # Print the message to stdout, which Greengrass saves in a log file. print(message)
-
Verwenden Sie die lokale AWS IoT Greengrass CLI, um Komponenten auf Ihrem Greengrass-Kerngerät zu verwalten.
Führen Sie den folgenden Befehl aus, um die Komponente auf dem AWS IoT Greengrass Core bereitzustellen. Ersetzen Sie
oder/greengrass/v2
C:\greengrass\v2
durch Ihren AWS IoT Greengrass V2 Stammordner und ersetzen Sie~/greengrassv2
oder%USERPROFILE%\greengrassv2
durch Ihren Komponentenentwicklungsordner.Dieser Befehl fügt die Komponente hinzu, die das -Rezept in
recipes
und das Python-Skript in verwendetartifacts
. Die--merge
Option fügt die von Ihnen angegebene Komponente und Version hinzu oder aktualisiert sie. -
Die AWS IoT Greengrass Core-Software speichert stdout aus dem Komponentenprozess in Protokolldateien im
logs
Ordner . Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Hello-World-Komponente ausgeführt wird und Nachrichten druckt.Sie sollten Meldungen ähnlich dem folgenden Beispiel sehen.
Hello, world!
Anmerkung
Wenn die Datei nicht vorhanden ist, ist die lokale Bereitstellung möglicherweise noch nicht abgeschlossen. Wenn die Datei nicht innerhalb von 15 Sekunden existiert, ist die Bereitstellung wahrscheinlich fehlgeschlagen. Dies kann beispielsweise der Fall sein, wenn Ihr Rezept ungültig ist. Führen Sie den folgenden Befehl aus, um die AWS IoT Greengrass Core-Protokolldatei anzuzeigen. Diese Datei enthält Protokolle aus dem Bereitstellungsservice des Greengrass-Core-Geräts.
-
Ändern Sie die lokale Komponente, um Ihren Code zu iterieren und zu testen. Öffnen Sie
hello_world.py
in einem Texteditor und fügen Sie den folgenden Code in Zeile 4 hinzu, um die Nachricht zu bearbeiten, die der AWS IoT Greengrass Kern protokolliert.message += " Greetings from your first Greengrass component."
Das
hello_world.py
Skript sollte jetzt den folgenden Inhalt haben.import sys message = "Hello, %s!" % sys.argv[1] message += " Greetings from your first Greengrass component." # Print the message to stdout, which Greengrass saves in a log file. print(message)
-
Führen Sie den folgenden Befehl aus, um die Komponente mit Ihren Änderungen zu aktualisieren.
Dieser Befehl aktualisiert die
com.example.HelloWorld
Komponente mit dem neuesten Hello World-Artefakt. -
Führen Sie den folgenden Befehl aus, um die Komponente neu zu starten. Wenn Sie eine Komponente neu starten, verwendet das Core-Gerät die neuesten Änderungen.
-
Überprüfen Sie das Protokoll erneut, um zu überprüfen, ob die Hello-World-Komponente die neue Nachricht ausgibt.
Sie sollten Meldungen ähnlich dem folgenden Beispiel sehen.
Hello, world! Greetings from your first Greengrass component.
-
Sie können die Konfigurationsparameter der Komponente aktualisieren, um verschiedene Konfigurationen zu testen. Wenn Sie eine Komponente bereitstellen, können Sie eine Konfigurationsaktualisierung angeben, die definiert, wie die Konfiguration der Komponente auf dem Core-Gerät geändert wird. Sie können angeben, welche Konfigurationswerte auf Standardwerte zurückgesetzt werden sollen, und die neuen Konfigurationswerte, die auf dem Core-Gerät zusammengeführt werden sollen. Weitere Informationen finden Sie unter Komponentenkonfigurationen aktualisieren.
Gehen Sie wie folgt vor:
-
Verwenden Sie einen Texteditor, um eine Datei mit dem Namen zu erstellen
hello-world-config-update.json
, die das Konfigurationsupdate enthältAuf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um GNU Nano zum Erstellen der Datei zu verwenden.
nano hello-world-config-update.json
-
Kopieren Sie das folgende JSON-Objekt und fügen Sie es in die Datei ein. Dieses JSON-Objekt definiert eine Konfigurationsaktualisierung, die den Wert mit dem
Message
Parameter zusammenführtfriend
, um seinen Wert zu aktualisieren. Dieses Konfigurationsupdate gibt keine Werte an, die zurückgesetzt werden sollen. Sie müssen denMessage
Parameter nicht zurücksetzen, da die Zusammenführungsaktualisierung den vorhandenen Wert ersetzt.{ "com.example.HelloWorld": { "MERGE": { "Message": "friend" } } }
-
Führen Sie den folgenden Befehl aus, um das Konfigurationsupdate für die Hello World-Komponente bereitzustellen.
-
Überprüfen Sie das Protokoll erneut, um zu überprüfen, ob die Hello World-Komponente die neue Nachricht ausgibt.
Sie sollten Meldungen ähnlich dem folgenden Beispiel sehen.
Hello, friend! Greetings from your first Greengrass component.
-
-
Nachdem Sie Ihre Komponente getestet haben, entfernen Sie sie von Ihrem Core-Gerät. Führen Sie den folgenden Befehl aus.
Wichtig
Dieser Schritt ist erforderlich, damit Sie die Komponente nach dem Hochladen auf wieder auf dem Core-Gerät bereitstellen können AWS IoT Greengrass. Andernfalls schlägt die Bereitstellung mit einem Versionskompatibilitätsfehler fehl, da die lokale Bereitstellung eine andere Version der Komponente angibt.
Führen Sie den folgenden Befehl aus und stellen Sie sicher, dass die
com.example.HelloWorld
Komponente nicht in der Liste der Komponenten auf Ihrem Gerät angezeigt wird.
Ihre Hello-World-Komponente ist abgeschlossen und Sie können sie jetzt in den AWS IoT Greengrass Cloud-Service hochladen. Anschließend können Sie die Komponente auf Greengrass-Core-Geräten bereitstellen.