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 Sie eine Komponente auf Ihrem Gerät
Eine Komponente ist ein Softwaremodul, das auf AWS IoT Greengrass Kerngeräten ausgeführt wird. Komponenten ermöglichen es Ihnen, komplexe Anwendungen als separate Bausteine zu erstellen und zu verwalten, die Sie von einem Greengrass-Core-Gerät auf ein anderes wiederverwenden können. Jede Komponente besteht aus einem Rezept und Artefakten.
-
Rezepte
Jede Komponente enthält eine Rezeptdatei, die ihre Metadaten definiert. Das Rezept spezifiziert auch die Konfigurationsparameter, die Komponentenabhängigkeiten, den Lebenszyklus und die Plattformkompatibilität der Komponente. Der Komponentenlebenszyklus definiert die Befehle, mit denen die Komponente installiert, ausgeführt und heruntergefahren wird. Weitere Informationen finden Sie unter AWS IoT Greengrass Referenz zum Komponenten-Rezept.
Sie können Rezepte im JSON
- oder YAML-Format definieren. -
Artefakte
Komponenten können eine beliebige Anzahl von Artefakten haben, bei denen es sich um Komponenten-Binärdateien handelt. Artefakte können Skripts, kompilierten Code, statische Ressourcen und alle anderen Dateien umfassen, die eine Komponente verwendet. 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-Core-Gerät ohne Interaktion mit der AWS Cloud zu entwickeln und zu testen. Wenn Sie Ihre lokale Komponente fertiggestellt 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 all Ihren Greengrass-Kerngeräten bereitzustellen. Weitere Informationen zu Komponenten finden Sie unterAWS IoT Greengrass Komponenten entwickeln.
In diesem Abschnitt erfahren Sie, wie Sie eine grundlegende Hello World-Komponente lokal auf Ihrem Kerngerät erstellen und ausführen.
Um eine Hello World-Komponente auf Ihrem Gerät zu entwickeln
-
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 zu dem 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 Plattformfähigkeit Ihrer Komponente definiert. Nehmen Sie die Komponentenversion in den Namen der Rezeptdatei auf, damit Sie erkennen können, welches Rezept welche Komponentenversion widerspiegelt. Sie können das YAML- oder das JSON-Format für Ihr Rezept wählen.
Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.
Anmerkung
AWS IoT Greengrass verwendet semantische Versionen für Komponenten. Semantische Versionen folgen einem Hauptteil. geringfügig. Patch-Nummernsystem. Version
1.0.0
steht beispielsweise für die erste Hauptversion einer Komponente. 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 ist.world
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-Core-Gerä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 Artefaktordnerpfad verwenden. Geben Sie den Komponentennamen und die Version an, die Sie im Rezept angeben.
artifacts/
componentName
/componentVersion
/ -
Verwenden Sie einen Texteditor, um eine Python-Skript-Artefaktdatei für Ihre Hello World-Komponente zu erstellen.
Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.
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-Core-Gerä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 Entwicklungsordner für Komponenten.Dieser Befehl fügt die Komponente hinzu, die das Rezept verwendet,
recipes
und das Python-Skript inartifacts
. Die--merge
Option fügt die von Ihnen angegebene Komponente und Version hinzu oder aktualisiert sie. -
Die AWS IoT Greengrass Core-Software speichert Standarddaten 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 sehen, die dem folgenden Beispiel ähneln.
Hello, world!
Anmerkung
Wenn die Datei nicht existiert, 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 nicht gültig ist. Führen Sie den folgenden Befehl aus, um die AWS IoT Greengrass Kernprotokolldatei anzuzeigen. Diese Datei enthält Protokolle vom Bereitstellungsdienst des Greengrass-Core-Geräts.
-
Ändern Sie die lokale Komponente, um Ihren Code zu iterieren und zu testen. Öffnen Sie die Datei
hello_world.py
in einem Texteditor und fügen Sie in Zeile 4 den folgenden Code 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 Kerngerät die neuesten Änderungen.
-
Überprüfen Sie das Protokoll erneut, um sicherzustellen, dass die Hello World-Komponente die neue Nachricht druckt.
Sie sollten Meldungen sehen, die dem folgenden Beispiel ähneln.
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 ein Konfigurationsupdate angeben, das definiert, wie die Konfiguration der Komponente auf dem Kerngerät geändert werden soll. Sie können angeben, welche Konfigurationswerte auf die Standardwerte zurückgesetzt werden sollen und welche neuen Konfigurationswerte auf dem Kerngerä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
hello-world-config-update.json
zu erstellen, die das Konfigurationsupdate enthältAuf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.
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 ein Konfigurationsupdate, das den Wert
friend
mit demMessage
Parameter zusammenführt, um seinen Wert zu aktualisieren. Dieses Konfigurationsupdate spezifiziert keine Werte, die zurückgesetzt werden sollen. Sie müssen denMessage
Parameter nicht zurücksetzen, da das Merge-Update 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 sicherzustellen, dass die Hello World-Komponente die neue Nachricht ausgibt.
Sie sollten Meldungen sehen, die dem folgenden Beispiel ähneln.
Hello, friend! Greetings from your first Greengrass component.
-
-
Wenn Sie mit dem Testen Ihrer Komponente fertig sind, entfernen Sie sie von Ihrem Kerngerät. Führen Sie den folgenden Befehl aus.
Wichtig
Dieser Schritt ist erforderlich, damit Sie die Komponente nach dem Hochladen wieder auf dem Kerngerät bereitstellen können AWS IoT Greengrass. Andernfalls schlägt die Bereitstellung mit einem Versionskompatibilitätsfehler fehl, da bei der lokalen Bereitstellung eine andere Version der Komponente angegeben ist.
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 erscheint.
Ihre Hello World-Komponente ist fertig und Sie können sie jetzt in den AWS IoT Greengrass Cloud-Dienst hochladen. Anschließend können Sie die Komponente auf Greengrass-Kerngeräten bereitstellen.