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.
AWS IoT Greengrass Referenz zum Komponenten-Rezept
Das Komponentenrezept ist eine Datei, die die Details, Abhängigkeiten, Artefakte und Lebenszyklen einer Komponente definiert. Der Komponentenlebenszyklus spezifiziert die Befehle, die ausgeführt werden müssen, um beispielsweise die Komponente zu installieren, auszuführen und herunterzufahren. Der AWS IoT Greengrass Kern verwendet die Lebenszyklen, die Sie im Rezept definieren, um Komponenten zu installieren und auszuführen. Der AWS IoT Greengrass Service verwendet das Rezept, um die Abhängigkeiten und Artefakte zu identifizieren, die bei der Bereitstellung der Komponente auf Ihren Kerngeräten bereitgestellt werden sollen.
Im Rezept können Sie eindeutige Abhängigkeiten und Lebenszyklen für jede Plattform definieren, die eine Komponente unterstützt. Sie können diese Funktion verwenden, um eine Komponente auf Geräten mit mehreren Plattformen mit unterschiedlichen Anforderungen bereitzustellen. Sie können damit auch AWS IoT Greengrass verhindern, dass eine Komponente auf Geräten installiert wird, die sie nicht unterstützen.
Jedes Rezept enthält eine Liste von Manifesten. Jedes Manifest spezifiziert eine Reihe von Plattformanforderungen sowie den Lebenszyklus und die Artefakte, die für Kerngeräte verwendet werden sollen, deren Plattform diese Anforderungen erfüllt. Das Kerngerät verwendet das erste Manifest mit den Plattformanforderungen, die das Gerät erfüllt. Geben Sie ein Manifest ohne Plattformanforderungen an, das einem beliebigen Kerngerät entspricht.
Sie können auch einen globalen Lebenszyklus angeben, der nicht in einem Manifest enthalten ist. Im globalen Lebenszyklus können Sie Auswahlschlüssel verwenden, die Unterabschnitte des Lebenszyklus identifizieren. Anschließend können Sie diese Auswahlschlüssel innerhalb eines Manifests angeben, um diese Abschnitte des globalen Lebenszyklus zusätzlich zum Lebenszyklus des Manifests zu verwenden. Das Kerngerät verwendet die Auswahltasten des Manifests nur, wenn das Manifest keinen Lebenszyklus definiert. Sie können die all
Auswahl in einem Manifest verwenden, um Abschnitte des globalen Lebenszyklus ohne Auswahlschlüssel zuzuordnen.
Nachdem die AWS IoT Greengrass Core-Software ein Manifest ausgewählt hat, das dem Kerngerät entspricht, geht sie wie folgt vor, um die zu verwendenden Lebenszyklusschritte zu identifizieren:
-
Wenn das ausgewählte Manifest einen Lebenszyklus definiert, verwendet das Kerngerät diesen Lebenszyklus.
-
Wenn das ausgewählte Manifest keinen Lebenszyklus definiert, verwendet das Kerngerät den globalen Lebenszyklus. Das Kerngerät geht wie folgt vor, um zu ermitteln, welche Abschnitte des globalen Lebenszyklus verwendet werden sollen:
-
Wenn das Manifest Auswahlschlüssel definiert, verwendet das Kerngerät die Abschnitte des globalen Lebenszyklus, die die Auswahlschlüssel des Manifests enthalten.
-
Wenn das Manifest keine Auswahltasten definiert, verwendet das Kerngerät die Abschnitte des globalen Lebenszyklus, die keine Auswahltasten haben. Dieses Verhalten entspricht einem Manifest, das die
all
Auswahl definiert.
-
Wichtig
Ein Kerngerät muss die Plattformanforderungen mindestens eines Manifests erfüllen, um die Komponente installieren zu können. Wenn kein Manifest mit dem Kerngerät übereinstimmt, installiert die AWS IoT Greengrass Core-Software die Komponente nicht und die Bereitstellung schlägt fehl.
Sie können Rezepte im YAML
Validierung von Rezepturen
Greengrass validiert bei der Erstellung einer JSON YAML Komponentenversion ein Oder-Komponentenrezept. Bei dieser Rezeptvalidierung wird Ihr Rezept JSON oder Ihre YAML Komponentenrezeptur auf häufig auftretende Fehler überprüft, um mögliche Probleme bei der Bereitstellung zu vermeiden. Bei der Validierung wird das Rezept auf häufige Fehler (z. B. fehlende Kommas, geschweifte Klammern und Felder) überprüft und sichergestellt, dass das Rezept korrekt formuliert ist.
Wenn Sie eine Fehlermeldung bei der Rezeptvalidierung erhalten, überprüfen Sie Ihr Rezept auf fehlende Kommas, Klammern oder Felder. Vergewissern Sie sich anhand des Rezeptformats, dass Ihnen keine Felder fehlen.
Rezeptformat
Wenn Sie ein Rezept für eine Komponente definieren, geben Sie die folgenden Informationen im Rezeptdokument an. Dieselbe Struktur gilt für Rezepte in YAML und JSON Formaten.
RecipeFormatVersion
-
Die Vorlagenversion für das Rezept. Wählen Sie die folgende Option:
-
2020-01-25
-
ComponentName
-
Der Name der Komponente, die dieses Rezept definiert. Der Komponentenname muss für Sie AWS-Konto in jeder Region einzigartig sein.
Tipps
-
Verwenden Sie das umgekehrte Domainnamenformat, um Namenskonflikte innerhalb Ihres Unternehmens zu vermeiden. Wenn Ihr Unternehmen beispielsweise Eigentümer eines Solarenergieprojekts ist
example.com
und Sie daran arbeiten, können Sie Ihrer Komponentecom.example.solar.HelloWorld
den Namen Hello World geben. Auf diese Weise können Kollisionen bei Komponentennamen innerhalb Ihres Unternehmens vermieden werden. -
Vermeiden Sie das
aws.greengrass
Präfix in Ihren Komponentennamen. AWS IoT Greengrass verwendet dieses Präfix für die öffentlichen Komponenten, die es bereitstellt. Wenn Sie denselben Namen wie eine öffentliche Komponente wählen, ersetzt Ihre Komponente diese Komponente. AWS IoT Greengrass Stellt dann Ihre Komponente anstelle der öffentlichen Komponente bereit, wenn Komponenten bereitgestellt werden, die von dieser öffentlichen Komponente abhängig sind. Mit dieser Funktion können Sie das Verhalten öffentlicher Komponenten außer Kraft setzen, aber sie kann auch andere Komponenten beschädigen, wenn Sie nicht beabsichtigen, eine öffentliche Komponente zu überschreiben.
-
ComponentVersion
-
Die Version der Komponente. Der Höchstwert für die Werte „Major“, „Minor“ und „Patch“ ist 999999.
Anmerkung
AWS IoT Greengrass verwendet semantische Versionen für Komponenten. Semantische Versionen folgen einem Hauptteil. unbedeutend. Patch-Nummernsystem. Version
1.0.0
steht beispielsweise für die erste Hauptversion einer Komponente. Weitere Informationen finden Sie in der semantischen Versionsspezifikation. ComponentDescription
-
(Optional) Die Beschreibung der Komponente.
ComponentPublisher
-
Der Herausgeber oder Autor der Komponente.
ComponentConfiguration
-
(Optional) Ein Objekt, das die Konfiguration oder die Parameter für die Komponente definiert. Sie definieren die Standardkonfiguration, und wenn Sie dann die Komponente bereitstellen, können Sie das Konfigurationsobjekt angeben, das der Komponente zur Verfügung gestellt werden soll. Die Komponentenkonfiguration unterstützt verschachtelte Parameter und Strukturen. Dieses Objekt enthält die folgenden Informationen:
DefaultConfiguration
-
Ein Objekt, das die Standardkonfiguration für die Komponente definiert. Sie definieren die Struktur dieses Objekts.
Anmerkung
AWS IoT Greengrass verwendet JSON für Konfigurationswerte. JSONgibt einen Zahlentyp an, unterscheidet aber nicht zwischen Ganzzahlen und Gleitkommazahlen. Aus diesem Grund können Konfigurationswerte in Fließkommazahlen umgewandelt werden. AWS IoT Greengrass Um sicherzustellen, dass Ihre Komponente den richtigen Datentyp verwendet, empfehlen wir, numerische Konfigurationswerte als Zeichenfolgen zu definieren. Lassen Sie Ihre Komponente sie dann als Ganzzahlen oder Gleitkommazahlen analysieren. Dadurch wird sichergestellt, dass Ihre Konfigurationswerte in der Konfiguration und auf Ihrem Kerngerät denselben Typ haben.
ComponentDependencies
-
(Optional) Ein Wörterbuch mit Objekten, die jeweils eine Komponentenabhängigkeit für die Komponente definieren. Der Schlüssel für jedes Objekt identifiziert den Namen der Komponentenabhängigkeit. AWS IoT Greengrass installiert Komponentenabhängigkeiten, wenn die Komponente installiert wird. AWS IoT Greengrass wartet darauf, dass Abhängigkeiten beginnen, bevor die Komponente gestartet wird. Jedes Objekt enthält die folgenden Informationen:
VersionRequirement
-
Die semantische Versionsbeschränkung im NPM-Stil, die die kompatiblen Komponentenversionen für diese Abhängigkeit definiert. Sie können eine Version oder einen Versionsbereich angeben. Weitere Informationen finden Sie im npm Semantic Version
Calculator. DependencyType
-
(Optional) Der Typ dieser Abhängigkeit. Wählen Sie aus den folgenden Optionen aus.
-
SOFT
— Die Komponente startet nicht neu, wenn die Abhängigkeit den Status ändert. -
HARD
— Die Komponente wird neu gestartet, wenn die Abhängigkeit den Status ändert.
Standardeinstellung:
HARD
. -
ComponentType
-
(Optional) Der Typ der Komponente.
Anmerkung
Es wird nicht empfohlen, den Komponententyp in einer Rezeptur anzugeben. AWS IoT Greengrass legt den Typ für Sie fest, wenn Sie eine Komponente erstellen.
Bei dem Typ kann es sich um einen der folgenden Typen handeln:
-
aws.greengrass.generic
— Die Komponente führt Befehle aus oder stellt Artefakte bereit. -
aws.greengrass.lambda
— Die Komponente führt mithilfe der Lambda-Launcher-Komponente eine Lambda-Funktion aus. DerComponentSource
Parameter gibt die ARN Lambda-Funktion an, die diese Komponente ausführt.Es wird nicht empfohlen, diese Option zu verwenden, da sie festgelegt wird, AWS IoT Greengrass wenn Sie eine Komponente aus einer Lambda-Funktion erstellen. Weitere Informationen finden Sie unter Ausführen von -AWS LambdaFunktionen.
-
aws.greengrass.plugin
— Die Komponente läuft in derselben Java Virtual Machine (JVM) wie der Greengrass-Kern. Wenn Sie eine Plugin-Komponente bereitstellen oder neu starten, wird der Greengrass-Nucleus neu gestartet.Plugin-Komponenten verwenden dieselbe Protokolldatei wie der Greengrass-Kern. Weitere Informationen finden Sie unter Überwachen von AWS IoT Greengrass Protokollen.
Wir empfehlen nicht, diese Option in Komponentenrezepten zu verwenden, da sie für in Java geschriebene Komponenten AWS vorgesehen ist, die direkt mit dem Greengrass-Kern verbunden sind. Weitere Hinweise darüber, welche öffentlichen Komponenten Plugins sind, finden Sie unter. AWSVon bereitgestellte Komponenten
-
aws.greengrass.nucleus
— Die Nukleus-Komponente. Weitere Informationen finden Sie unter Grüngraskern.Wir empfehlen nicht, diese Option in Rezepturen für Komponenten zu verwenden. Es ist für die Greengrass Nucleus-Komponente vorgesehen, die die Mindestfunktionalität der AWS IoT Greengrass Core-Software bietet.
Standardmäßig,
aws.greengrass.generic
wenn Sie eine Komponente aus einem Rezept erstellen oderaws.greengrass.lambda
wenn Sie eine Komponente aus einer Lambda-Funktion erstellen.Weitere Informationen finden Sie unter Komponententypen.
-
ComponentSource
-
(Optional) Die ARN Lambda-Funktion, die eine Komponente ausführt.
Es wird nicht empfohlen, die Komponentenquelle in einem Rezept anzugeben. AWS IoT Greengrass legt diesen Parameter für Sie fest, wenn Sie eine Komponente aus einer Lambda-Funktion erstellen. Weitere Informationen finden Sie unter Ausführen von -AWS LambdaFunktionen.
-
Manifests
-
Eine Liste von Objekten, die jeweils den Lebenszyklus, die Parameter und Anforderungen der Komponente für eine Plattform definieren. Wenn ein Core-Gerät die Plattformanforderungen mehrerer Manifeste erfüllt, AWS IoT Greengrass wird das erste Manifest verwendet, dem das Core-Gerät entspricht. Um sicherzustellen, dass die Kerngeräte das richtige Manifest verwenden, definieren Sie zunächst die Manifeste mit strengeren Plattformanforderungen. Ein Manifest, das für alle Plattformen gilt, muss das letzte Manifest in der Liste sein.
Wichtig
Ein Kerngerät muss die Plattformanforderungen mindestens eines Manifests erfüllen, um die Komponente installieren zu können. Wenn kein Manifest mit dem Kerngerät übereinstimmt, installiert die AWS IoT Greengrass Core-Software die Komponente nicht und die Bereitstellung schlägt fehl.
Jedes Objekt enthält die folgenden Informationen:
Name
-
(Optional) Ein benutzerfreundlicher Name für die Plattform, die dieses Manifest definiert.
Wenn Sie diesen Parameter weglassen, AWS IoT Greengrass wird ein Name aus der Plattform
os
undarchitecture
erstellt. -
Platform
-
(Optional) Ein Objekt, das die Plattform definiert, für die dieses Manifest gilt. Lassen Sie diesen Parameter weg, um ein Manifest zu definieren, das für alle Plattformen gilt.
Dieses Objekt spezifiziert Schlüssel-Wert-Paare für die Plattform, auf der ein Core-Gerät läuft. Wenn Sie diese Komponente bereitstellen, vergleicht die AWS IoT Greengrass Core-Software diese Schlüssel-Wert-Paare mit den Plattformattributen auf dem Core-Gerät. Die AWS IoT Greengrass Core-Software definiert immer
os
architecture
und kann zusätzliche Attribute definieren. Sie können benutzerdefinierte Plattformattribute für ein Kerngerät angeben, wenn Sie die Greengrass Nucleus-Komponente bereitstellen. Weitere Informationen finden Sie unter dem Parameter Platform Overrides der Greengrass Nucleus-Komponente.Für jedes Schlüssel-Wert-Paar können Sie einen der folgenden Werte angeben:
-
Ein exakter Wert, z. B.
linux
oder.windows
Exakte Werte müssen mit einem Buchstaben oder einer Zahl beginnen. -
*
, was einem beliebigen Wert entspricht. Dies gilt auch, wenn kein Wert vorhanden ist. -
Ein regulärer Ausdruck im Java-Stil, wie z.
/windows|linux/
Der reguläre Ausdruck muss mit einem Schrägstrich () beginnen und enden./
Der reguläre Ausdruck/.+/
entspricht beispielsweise jedem Wert, der kein Leerzeichen ist.
Dieses Objekt enthält die folgenden Informationen:
os
-
(Optional) Der Name des Betriebssystems für die Plattform, die dieses Manifest unterstützt. Zu den gängigen Plattformen gehören die folgenden Werte:
-
linux
-
windows
-
darwin
(macOS)
-
architecture
-
(Optional) Die Prozessorarchitektur für die Plattform, die dieses Manifest unterstützt. Zu den gängigen Architekturen gehören die folgenden Werte:
-
amd64
-
arm
-
aarch64
-
x86
-
architecture.detail
-
(Optional) Die Details zur Prozessorarchitektur für die Plattform, die dieses Manifest unterstützt. Zu den allgemeinen Architekturdetails gehören die folgenden Werte:
-
arm61
-
arm71
-
arm81
-
key
-
(Optional) Ein Plattformattribut, das Sie für dieses Manifest definieren. Ersetzen
key
mit dem Namen des Plattformattributs. Die AWS IoT Greengrass Core-Software ordnet dieses Plattformattribut den Schlüssel-Wert-Paaren zu, die Sie in der Greengrass Nucleus-Komponentenkonfiguration angeben. Weitere Informationen finden Sie unter dem Parameter Platform Overrides der Greengrass Nucleus-Komponente.Tipp
Verwenden Sie das umgekehrte Domainnamenformat, um Namenskonflikte innerhalb Ihres Unternehmens zu vermeiden. Wenn Ihr Unternehmen beispielsweise Eigentümer eines Radioprojekts ist
example.com
und Sie daran arbeiten, können Sie ein benutzerdefiniertes Plattformattributcom.example.radio.RadioModule
benennen. Auf diese Weise können Konflikte mit den Namen von Plattformattributen innerhalb Ihres Unternehmens vermieden werden.Sie können beispielsweise ein Plattformattribut definieren
com.example.radio.RadioModule
, um ein anderes Manifest zu spezifizieren, das darauf basiert, welches Funkmodul auf einem Kerngerät verfügbar ist. Jedes Manifest kann unterschiedliche Artefakte enthalten, die für unterschiedliche Hardwarekonfigurationen gelten, sodass Sie die minimale Menge an Software auf dem Kerngerät bereitstellen.
-
-
Lifecycle
-
Ein Objekt oder eine Zeichenfolge, die definiert, wie die Komponente auf der Plattform installiert und ausgeführt wird, die dieses Manifest definiert. Sie können auch einen globalen Lebenszyklus definieren, der für alle Plattformen gilt. Das Kerngerät verwendet den globalen Lebenszyklus nur, wenn das zu verwendende Manifest keinen Lebenszyklus spezifiziert.
Anmerkung
Sie definieren diesen Lebenszyklus in einem Manifest. Die Lebenszyklusschritte, die Sie hier angeben, gelten nur für die Plattform, die dieses Manifest definiert. Sie können auch einen globalen Lebenszyklus definieren, der für alle Plattformen gilt.
Dieses Objekt oder diese Zeichenfolge enthält die folgenden Informationen:
-
Setenv
-
(Optional) Ein Wörterbuch mit Umgebungsvariablen, das allen Lebenszyklusskripten zur Verfügung gestellt wird. Sie können diese Umgebungsvariablen
Setenv
in jedem Lebenszyklusskript überschreiben. -
install
-
(Optional) Ein Objekt oder eine Zeichenfolge, die das Skript definiert, das bei der Installation der Komponente ausgeführt werden soll. Die AWS IoT Greengrass Core-Software führt diesen Lebenszyklusschritt auch bei jedem Start der Software aus.
Wenn das
install
Skript mit einem Erfolgscode beendet wird, wechselt die Komponente in denINSTALLED
Status.Dieses Objekt oder diese Zeichenfolge enthält die folgenden Informationen:
Script
-
Das auszuführende Skript.
RequiresPrivilege
-
(Optional) Sie können das Skript mit Root-Rechten ausführen. Wenn Sie diese Option auf setzen
true
, führt die AWS IoT Greengrass Core-Software dieses Lifecycle-Skript als Root aus und nicht als Systembenutzer, den Sie für die Ausführung dieser Komponente konfigurieren. Standardeinstellung:false
. Skipif
-
(Optional) Die Prüfung, um festzustellen, ob das Skript ausgeführt werden soll oder nicht. Sie können festlegen, dass geprüft wird, ob sich eine ausführbare Datei im Pfad befindet oder ob eine Datei existiert. Wenn die Ausgabe wahr ist, überspringt die AWS IoT Greengrass Core-Software den Schritt. Wählen Sie eine der folgenden Prüfungen:
-
onpath
— Prüft, ob sich ein Runnable im Systempfad befindet. Verwenden Sie dies beispielsweise,runnable
onpath python3
um diesen Lebenszyklusschritt zu überspringen, wenn Python 3 verfügbar ist. -
exists
— Prüft, ob eine Datei existiert. Verwenden Sie zum Beispiel,file
exists /tmp/my-configuration.db
um diesen Lebenszyklusschritt zu überspringen, falls/tmp/my-configuration.db
vorhanden.
-
Timeout
-
(Optional) Die maximale Zeit in Sekunden, die das Skript ausführen kann, bevor die AWS IoT Greengrass Core-Software den Prozess beendet.
Standard: 120 Sekunden
Setenv
-
(Optional) Das Wörterbuch der Umgebungsvariablen, die dem Skript zur Verfügung gestellt werden sollen. Diese Umgebungsvariablen überschreiben die Variablen, die Sie in angeben
Lifecycle.Setenv
.
-
run
-
(Optional) Ein Objekt oder eine Zeichenfolge, die das Skript definiert, das beim Start der Komponente ausgeführt werden soll.
Die Komponente wechselt in den
RUNNING
Status, wenn dieser Lebenszyklusschritt ausgeführt wird. Wenn dasrun
Skript mit einem Erfolgscode beendet wird, wechselt die Komponente in denSTOPPING
Status. Wenn einshutdown
Skript angegeben ist, wird es ausgeführt; andernfalls wechselt die Komponente in denFINISHED
Status.Komponenten, die von dieser Komponente abhängen, werden gestartet, wenn dieser Lebenszyklusschritt ausgeführt wird. Um einen Hintergrundprozess auszuführen, z. B. einen Dienst, den abhängige Komponenten verwenden, verwenden Sie stattdessen den
startup
Lebenszyklusschritt.Wenn Sie Komponenten mit einem
run
Lebenszyklus bereitstellen, kann das Kerngerät die Bereitstellung als abgeschlossen melden, sobald dieses Lifecycle-Skript ausgeführt wird. Dadurch kann die Bereitstellung abgeschlossen und erfolgreich sein, auch wenn dasrun
Lifecycle-Skript kurz nach der Ausführung fehlschlägt. Wenn der Bereitstellungsstatus vom Ergebnis des Startskripts der Komponente abhängen soll, verwenden Sie stattdessen denstartup
Lebenszyklusschritt.Anmerkung
Sie können nur einen
startup
oder einenrun
Lebenszyklus definieren.Dieses Objekt oder diese Zeichenfolge enthält die folgenden Informationen:
Script
-
Das auszuführende Skript.
RequiresPrivilege
-
(Optional) Sie können das Skript mit Root-Rechten ausführen. Wenn Sie diese Option auf setzen
true
, führt die AWS IoT Greengrass Core-Software dieses Lifecycle-Skript als Root aus und nicht als Systembenutzer, den Sie für die Ausführung dieser Komponente konfigurieren. Standardeinstellung:false
. Skipif
-
(Optional) Die Prüfung, um festzustellen, ob das Skript ausgeführt werden soll oder nicht. Sie können festlegen, dass geprüft wird, ob sich eine ausführbare Datei im Pfad befindet oder ob eine Datei existiert. Wenn die Ausgabe wahr ist, überspringt die AWS IoT Greengrass Core-Software den Schritt. Wählen Sie eine der folgenden Prüfungen:
-
onpath
— Prüft, ob sich ein Runnable im Systempfad befindet. Verwenden Sie dies beispielsweise,runnable
onpath python3
um diesen Lebenszyklusschritt zu überspringen, wenn Python 3 verfügbar ist. -
exists
— Prüft, ob eine Datei existiert. Verwenden Sie zum Beispiel,file
exists /tmp/my-configuration.db
um diesen Lebenszyklusschritt zu überspringen, falls/tmp/my-configuration.db
vorhanden.
-
Timeout
-
(Optional) Die maximale Zeit in Sekunden, die das Skript ausführen kann, bevor die AWS IoT Greengrass Core-Software den Prozess beendet.
Für diesen Lebenszyklusschritt gibt es standardmäßig kein Timeout. Wenn Sie dieses Timeout weglassen, wird das
run
Skript ausgeführt, bis es beendet wird. Setenv
-
(Optional) Das Wörterbuch der Umgebungsvariablen, die dem Skript zur Verfügung gestellt werden sollen. Diese Umgebungsvariablen überschreiben die Variablen, die Sie in angeben
Lifecycle.Setenv
.
-
startup
-
(Optional) Ein Objekt oder eine Zeichenfolge, die den Hintergrundprozess definiert, der ausgeführt werden soll, wenn die Komponente gestartet wird.
Wird verwendet
startup
, um einen Befehl auszuführen, der erfolgreich beendet oder der Status der Komponente aktualisiert werden muss,RUNNING
bevor abhängige Komponenten gestartet werden können. Verwenden Sie den UpdateStateIPCVorgang, um den Status der Komponente aufRUNNING
oder zu setzenERRORED
, wenn die Komponente ein Skript startet, das nicht beendet wird. Sie könnten beispielsweise einenstartup
Schritt definieren, der den SQL Prozess Mein mit startet/etc/init.d/mysqld start
.Die Komponente wechselt in den
STARTING
Status, wenn dieser Lebenszyklusschritt ausgeführt wird. Wenn dasstartup
Skript mit einem Erfolgscode beendet wird, wechselt die Komponente in denRUNNING
Status. Dann können abhängige Komponenten gestartet werden.Wenn Sie Komponenten mit einem
startup
Lebenszyklus bereitstellen, kann das Kerngerät die Bereitstellung als abgeschlossen melden, nachdem dieses Lifecycle-Skript beendet wurde oder seinen Status gemeldet hat. Mit anderen Worten, der Status der Bereitstellung ist so lange gültig,IN_PROGRESS
bis die Startskripts aller Komponenten beendet werden oder einen Status melden.Anmerkung
Sie können nur einen
startup
oder einenrun
Lebenszyklus definieren.Dieses Objekt oder diese Zeichenfolge enthält die folgenden Informationen:
Script
-
Das auszuführende Skript.
RequiresPrivilege
-
(Optional) Sie können das Skript mit Root-Rechten ausführen. Wenn Sie diese Option auf setzen
true
, führt die AWS IoT Greengrass Core-Software dieses Lifecycle-Skript als Root aus und nicht als Systembenutzer, den Sie für die Ausführung dieser Komponente konfigurieren. Standardeinstellung:false
. Skipif
-
(Optional) Die Prüfung, um festzustellen, ob das Skript ausgeführt werden soll oder nicht. Sie können festlegen, dass geprüft wird, ob sich eine ausführbare Datei im Pfad befindet oder ob eine Datei existiert. Wenn die Ausgabe wahr ist, überspringt die AWS IoT Greengrass Core-Software den Schritt. Wählen Sie eine der folgenden Prüfungen:
-
onpath
— Prüft, ob sich ein Runnable im Systempfad befindet. Verwenden Sie dies beispielsweise,runnable
onpath python3
um diesen Lebenszyklusschritt zu überspringen, wenn Python 3 verfügbar ist. -
exists
— Prüft, ob eine Datei existiert. Verwenden Sie zum Beispiel,file
exists /tmp/my-configuration.db
um diesen Lebenszyklusschritt zu überspringen, falls/tmp/my-configuration.db
vorhanden.
-
Timeout
-
(Optional) Die maximale Zeit in Sekunden, die das Skript ausführen kann, bevor die AWS IoT Greengrass Core-Software den Prozess beendet.
Standard: 120 Sekunden
Setenv
-
(Optional) Das Wörterbuch der Umgebungsvariablen, die dem Skript zur Verfügung gestellt werden sollen. Diese Umgebungsvariablen überschreiben die Variablen, die Sie in angeben
Lifecycle.Setenv
.
-
shutdown
-
(Optional) Ein Objekt oder eine Zeichenfolge, die das Skript definiert, das ausgeführt werden soll, wenn die Komponente heruntergefahren wird. Verwenden Sie den Shutdown-Lebenszyklus, um Code auszuführen, den Sie ausführen möchten, wenn sich die Komponente im
STOPPING
Status befindet. Der Shutdown-Lebenszyklus kann verwendet werden, um einen Prozess zu stoppen, der von denrun
Skriptenstartup
oder gestartet wurde.Wenn Sie einen Hintergrundprozess in starten
startup
, verwenden Sie diesenshutdown
Schritt, um diesen Prozess zu beenden, wenn die Komponente heruntergefahren wird. Sie könnten beispielsweise einenshutdown
Schritt definieren, der den SQL Prozess Mein mit/etc/init.d/mysqld stop
beendet.Das
shutdown
Skript wird ausgeführt, nachdem die Komponente denSTOPPING
Status erreicht hat. Wenn das Skript erfolgreich abgeschlossen wurde, wechselt die Komponente in denFINISHED
Status.Dieses Objekt oder diese Zeichenfolge enthält die folgenden Informationen:
Script
-
Das auszuführende Skript.
RequiresPrivilege
-
(Optional) Sie können das Skript mit Root-Rechten ausführen. Wenn Sie diese Option auf setzen
true
, führt die AWS IoT Greengrass Core-Software dieses Lifecycle-Skript als Root aus und nicht als Systembenutzer, den Sie für die Ausführung dieser Komponente konfigurieren. Standardeinstellung:false
. Skipif
-
(Optional) Die Prüfung, um festzustellen, ob das Skript ausgeführt werden soll oder nicht. Sie können festlegen, dass geprüft wird, ob sich eine ausführbare Datei im Pfad befindet oder ob eine Datei existiert. Wenn die Ausgabe wahr ist, überspringt die AWS IoT Greengrass Core-Software den Schritt. Wählen Sie eine der folgenden Prüfungen:
-
onpath
— Prüft, ob sich ein Runnable im Systempfad befindet. Verwenden Sie dies beispielsweise,runnable
onpath python3
um diesen Lebenszyklusschritt zu überspringen, wenn Python 3 verfügbar ist. -
exists
— Prüft, ob eine Datei existiert. Verwenden Sie zum Beispiel,file
exists /tmp/my-configuration.db
um diesen Lebenszyklusschritt zu überspringen, falls/tmp/my-configuration.db
vorhanden.
-
Timeout
-
(Optional) Die maximale Zeit in Sekunden, die das Skript ausführen kann, bevor die AWS IoT Greengrass Core-Software den Prozess beendet.
Standard: 15 Sekunden.
Setenv
-
(Optional) Das Wörterbuch der Umgebungsvariablen, die dem Skript zur Verfügung gestellt werden sollen. Diese Umgebungsvariablen überschreiben die Variablen, die Sie in angeben
Lifecycle.Setenv
.
-
recover
-
(Optional) Ein Objekt oder eine Zeichenfolge, die das Skript definiert, das ausgeführt werden soll, wenn die Komponente auf einen Fehler stößt.
Dieser Schritt wird ausgeführt, wenn eine Komponente in den
ERRORED
Status wechselt. Wenn die KomponenteERRORED
dreimal in den Status wechselt, ohne dass sie erfolgreich wiederhergestellt werden konnte, wechselt die Komponente in denBROKEN
Status. Um eineBROKEN
Komponente zu reparieren, müssen Sie sie erneut bereitstellen.Dieses Objekt oder diese Zeichenfolge enthält die folgenden Informationen:
Script
-
Das auszuführende Skript.
RequiresPrivilege
-
(Optional) Sie können das Skript mit Root-Rechten ausführen. Wenn Sie diese Option auf setzen
true
, führt die AWS IoT Greengrass Core-Software dieses Lifecycle-Skript als Root aus und nicht als Systembenutzer, den Sie für die Ausführung dieser Komponente konfigurieren. Standardeinstellung:false
. Skipif
-
(Optional) Die Prüfung, um festzustellen, ob das Skript ausgeführt werden soll oder nicht. Sie können festlegen, dass geprüft wird, ob sich eine ausführbare Datei im Pfad befindet oder ob eine Datei existiert. Wenn die Ausgabe wahr ist, überspringt die AWS IoT Greengrass Core-Software den Schritt. Wählen Sie eine der folgenden Prüfungen:
-
onpath
— Prüft, ob sich ein Runnable im Systempfad befindet. Verwenden Sie dies beispielsweise,runnable
onpath python3
um diesen Lebenszyklusschritt zu überspringen, wenn Python 3 verfügbar ist. -
exists
— Prüft, ob eine Datei existiert. Verwenden Sie zum Beispiel,file
exists /tmp/my-configuration.db
um diesen Lebenszyklusschritt zu überspringen, falls/tmp/my-configuration.db
vorhanden.
-
Timeout
-
(Optional) Die maximale Zeit in Sekunden, die das Skript ausführen kann, bevor die AWS IoT Greengrass Core-Software den Prozess beendet.
Standard: 60 Sekunden.
Setenv
-
(Optional) Das Wörterbuch der Umgebungsvariablen, die dem Skript zur Verfügung gestellt werden sollen. Diese Umgebungsvariablen überschreiben die Variablen, die Sie in angeben
Lifecycle.Setenv
.
-
bootstrap
-
(Optional) Ein Objekt oder eine Zeichenfolge, die ein Skript definiert, für das die AWS IoT Greengrass Core-Software oder das Core-Gerät neu gestartet werden muss. Auf diese Weise können Sie eine Komponente entwickeln, die beispielsweise nach der Installation von Betriebssystem- oder Runtime-Updates einen Neustart durchführt.
Anmerkung
Verwenden Sie den Installationszyklus, um Updates oder Abhängigkeiten zu installieren, für die kein Neustart der AWS IoT Greengrass Core-Software oder des Core-Geräts erforderlich ist.
Dieser Lebenszyklusschritt wird in den folgenden Fällen, wenn die AWS IoT Greengrass Core-Software die Komponente bereitstellt, vor dem Schritt des Installationszyklus ausgeführt:
-
Die Komponente wird zum ersten Mal auf dem Kerngerät bereitgestellt.
-
Die Version der Komponente ändert sich.
-
Das Bootstrap-Skript ändert sich als Ergebnis eines Updates der Komponentenkonfiguration.
Nachdem die AWS IoT Greengrass Core-Software den Bootstrap-Schritt für alle Komponenten abgeschlossen hat, die in einer Bereitstellung über einen Bootstrap-Schritt verfügen, wird die Software neu gestartet.
Wichtig
Sie müssen die AWS IoT Greengrass Core-Software als Systemdienst konfigurieren, um die AWS IoT Greengrass Core-Software oder das Core-Gerät neu zu starten. Wenn Sie die AWS IoT Greengrass Core-Software nicht als Systemdienst konfigurieren, wird die Software nicht neu gestartet. Weitere Informationen finden Sie unter Den Greengrass Nucleus als Systemdienst konfigurieren.
Dieses Objekt oder diese Zeichenfolge enthält die folgenden Informationen:
BootstrapOnRollback
-
Anmerkung
Wenn diese Funktion aktiviert ist,
BootstrapOnRollback
wird sie nur für Komponenten ausgeführt, die die Bootstrap-Lebenszyklusschritte im Rahmen einer fehlgeschlagenen Zielbereitstellung entweder abgeschlossen haben oder versucht haben, sie auszuführen. Diese Funktion ist für Greengrass Nucleus-Versionen 2.12.0 und höher verfügbar.(Optional) Sie können die Bootstrap-Lebenszyklusschritte als Teil einer Rollback-Bereitstellung ausführen. Wenn Sie diese Option auf setzen
true
, werden die in einer Rollback-Bereitstellung definierten Bootstrap-Lebenszyklusschritte ausgeführt. Wenn eine Bereitstellung fehlschlägt, wird die vorherige Version des Komponenten-Bootstrap-Lebenszyklus während einer Rollback-Bereitstellung erneut ausgeführt.Standardeinstellung:
false
. Script
-
Das auszuführende Skript. Der Exit-Code dieses Skripts definiert die Neustart-Anweisung. Verwenden Sie die folgenden Exit-Codes:
-
0
— Starten Sie die AWS IoT Greengrass Core-Software oder das Core-Gerät nicht neu. Die AWS IoT Greengrass Core-Software wird nach dem Bootstrap aller Komponenten immer noch neu gestartet. -
100
— Aufforderung zum Neustart der AWS IoT Greengrass Core-Software. -
101
— Anfrage zum Neustart des Core-Geräts.
Die Exit-Codes 100 bis 199 sind für besonderes Verhalten reserviert. Andere Exit-Codes stehen für Skriptfehler.
-
RequiresPrivilege
-
(Optional) Sie können das Skript mit Root-Rechten ausführen. Wenn Sie diese Option auf setzen
true
, führt die AWS IoT Greengrass Core-Software dieses Lifecycle-Skript als Root aus und nicht als Systembenutzer, den Sie für die Ausführung dieser Komponente konfigurieren. Standardeinstellung:false
. Timeout
-
(Optional) Die maximale Zeit in Sekunden, die das Skript ausführen kann, bevor die AWS IoT Greengrass Core-Software den Prozess beendet.
Standard: 120 Sekunden
Setenv
-
(Optional) Das Wörterbuch der Umgebungsvariablen, die dem Skript zur Verfügung gestellt werden sollen. Diese Umgebungsvariablen überschreiben die Variablen, die Sie in angeben
Lifecycle.Setenv
.
-
-
-
Selections
-
(Optional) Eine Liste von Auswahlschlüsseln, die Abschnitte des globalen Lebenszyklus angeben, die für dieses Manifest ausgeführt werden sollen. Im globalen Lebenszyklus können Sie Lebenszyklusschritte mit Auswahlschlüsseln auf jeder Ebene definieren, um Unterabschnitte des Lebenszyklus auszuwählen. Anschließend verwendet das Kerngerät die Abschnitte, die den Auswahltasten in diesem Manifest entsprechen. Weitere Informationen finden Sie in den globalen Lebenszyklus-Beispielen.
Wichtig
Das Kerngerät verwendet die Auswahlen aus dem globalen Lebenszyklus nur, wenn dieses Manifest keinen Lebenszyklus definiert.
Sie können den
all
Auswahlschlüssel angeben, um Abschnitte des globalen Lebenszyklus auszuführen, für die es keine Auswahltasten gibt. -
Artifacts
-
(Optional) Eine Liste von Objekten, die jeweils ein binäres Artefakt für die Komponente auf der Plattform definieren, die dieses Manifest definiert. Sie können beispielsweise Code oder Bilder als Artefakte definieren.
Wenn die Komponente bereitgestellt wird, lädt die AWS IoT Greengrass Core-Software das Artefakt in einen Ordner auf dem Core-Gerät herunter. Sie können Artefakte auch als Archivdateien definieren, die die Software nach dem Herunterladen extrahiert.
Sie können Rezeptvariablen verwenden, um die Pfade zu den Ordnern abzurufen, in denen die Artefakte auf dem Kerngerät installiert werden.
-
Normale Dateien — Verwenden Sie die Rezeptvariable artifacts:path, um den Pfad zu dem Ordner zu ermitteln, der die Artefakte enthält. Geben Sie beispielsweise
{artifacts:path}/my_script.py
in einem Rezept an, dass der Pfad zu einem Artefakt abgerufen werden soll, das den. URIs3://amzn-s3-demo-bucket/path/to/my_script.py
-
Extrahierte Archive — Verwenden Sie die decompressedPath Rezeptvariable artifacts:, um den Pfad zu dem Ordner abzurufen, der die extrahierten Archivartefakte enthält. Die AWS IoT Greengrass Core-Software extrahiert jedes Archiv in einen Ordner mit demselben Namen wie das Archiv. Geben Sie beispielsweise
{artifacts:decompressedPath}/my_archive/my_script.py
in einem Rezept an, um den Pfad zu demmy_script.py
Archivartefakt zu ermitteln, das den URIs3://amzn-s3-demo-bucket/path/to/my_archive.zip
.
Anmerkung
Wenn Sie eine Komponente mit einem Archivartefakt auf einem lokalen Kerngerät entwickeln, haben Sie möglicherweise kein URI für dieses Artefakt. Um Ihre Komponente mit einer
Unarchive
Option zu testen, die das Artefakt extrahiert, geben Sie eine Option an, URI bei der der Dateiname mit dem Namen Ihrer Archivartefaktdatei übereinstimmt. Sie können angeben, URI wo Sie das Archivartefakt hochladen möchten, oder Sie können einen neuen Platzhalter angeben. URI Um dasmy_archive.zip
Artefakt beispielsweise während einer lokalen Bereitstellung zu extrahieren, können Sie Folgendes angeben.s3://amzn-s3-demo-bucket/my_archive.zip
Jedes Objekt enthält die folgenden Informationen:
URI
-
Das URI eines Artefakts in einem S3-Bucket. Die AWS IoT Greengrass Core-Software ruft das Artefakt von dort ab, URI wenn die Komponente installiert wird, es sei denn, das Artefakt ist bereits auf dem Gerät vorhanden. Jedes Artefakt muss in jedem Manifest einen eindeutigen Dateinamen haben.
Unarchive
-
(Optional) Der Typ des zu entpackenden Archivs. Wählen Sie aus den folgenden Optionen aus:
-
NONE
— Die Datei ist kein Archiv zum Entpacken. Die AWS IoT Greengrass Core-Software installiert das Artefakt in einem Ordner auf dem Core-Gerät. Sie können die Rezeptvariable artifacts:path verwenden, um den Pfad zu diesem Ordner zu ermitteln. -
ZIP
— Die Datei ist ein Archiv. ZIP Die AWS IoT Greengrass Core-Software extrahiert das Archiv in einen Ordner mit demselben Namen wie das Archiv. Sie können die Variable artifacts: decompressedPath recipe verwenden, um den Pfad zu dem Ordner abzurufen, der diesen Ordner enthält.
Standardeinstellung:
NONE
. -
-
Permission
-
(Optional) Ein Objekt, das die Zugriffsberechtigungen definiert, die für diese Artefaktdatei festgelegt werden sollen. Sie können die Leseberechtigung und die Ausführungsberechtigung festlegen.
Anmerkung
Sie können die Schreibberechtigung nicht festlegen, da die AWS IoT Greengrass Core-Software es Komponenten nicht erlaubt, Artefaktdateien im Artefaktordner zu bearbeiten. Um eine Artefaktdatei in einer Komponente zu bearbeiten, kopieren Sie sie an einen anderen Speicherort oder veröffentlichen Sie eine neue Artefaktdatei und stellen Sie sie bereit.
Wenn Sie ein Artefakt als ein zu entpackendes Archiv definieren, legt die AWS IoT Greengrass Core-Software diese Zugriffsberechtigungen für die Dateien fest, die sie aus dem Archiv entpackt. Die AWS IoT Greengrass Core-Software legt die Zugriffsberechtigungen für den Ordner auf
ALL
fürRead
und fest.Execute
Dadurch können Komponenten die entpackten Dateien im Ordner anzeigen. Um Berechtigungen für einzelne Dateien aus dem Archiv festzulegen, können Sie die Berechtigungen im Install-Lifecycle-Skript festlegen.Dieses Objekt enthält die folgenden Informationen:
Read
-
(Optional) Die Leseberechtigung, die für diese Artefaktdatei festgelegt werden soll. Geben Sie Folgendes an, damit andere Komponenten auf dieses Artefakt zugreifen können, z. B. Komponenten, die von dieser Komponente abhängen.
ALL
Wählen Sie aus den folgenden Optionen aus:-
NONE
— Die Datei ist nicht lesbar. -
OWNER
— Die Datei ist für den Systembenutzer lesbar, den Sie für die Ausführung dieser Komponente konfigurieren. -
ALL
— Die Datei ist für alle Benutzer lesbar.
Standardeinstellung:
OWNER
. -
Execute
-
(Optional) Die Ausführungsberechtigung, die für diese Artefaktdatei festgelegt werden soll. Die
Execute
Erlaubnis impliziert dieRead
Erlaubnis. Wenn Sie beispielsweiseALL
for angebenExecute
, können alle Benutzer diese Artefaktdatei lesen und ausführen.Wählen Sie aus den folgenden Optionen aus:
-
NONE
— Die Datei kann nicht ausgeführt werden. -
OWNER
— Die Datei kann von dem Systembenutzer ausgeführt werden, den Sie für die Ausführung der Komponente konfigurieren. -
ALL
— Die Datei kann von allen Benutzern ausgeführt werden.
Standardeinstellung:
NONE
. -
Digest
-
(Schreibgeschützt) Der kryptografische Digest-Hash des Artefakts. Wenn Sie eine Komponente erstellen, AWS IoT Greengrass verwendet einen Hash-Algorithmus, um einen Hash der Artefaktdatei zu berechnen. Wenn Sie dann die Komponente bereitstellen, berechnet der Greengrass-Kern den Hash des heruntergeladenen Artefakts und vergleicht den Hash mit diesem Digest, um das Artefakt vor der Installation zu verifizieren. Wenn der Hash nicht mit dem Digest übereinstimmt, schlägt die Bereitstellung fehl.
Wenn Sie diesen Parameter festlegen, AWS IoT Greengrass ersetzt er den Wert, den Sie bei der Erstellung der Komponente festgelegt haben.
Algorithm
-
(Schreibgeschützt) Der AWS IoT Greengrass Hash-Algorithmus, mit dem der Digest-Hash des Artefakts berechnet wird.
Wenn Sie diesen Parameter festlegen, AWS IoT Greengrass ersetzt er den Wert, den Sie bei der Erstellung der Komponente festgelegt haben.
-
-
Lifecycle
-
Ein Objekt, das definiert, wie die Komponente installiert und ausgeführt wird. Das Kerngerät verwendet den globalen Lebenszyklus nur, wenn das zu verwendende Manifest keinen Lebenszyklus spezifiziert.
Anmerkung
Sie definieren diesen Lebenszyklus außerhalb eines Manifests. Sie können auch einen Manifest-Lebenszyklus definieren, der für die Plattformen gilt, die diesem Manifest entsprechen.
Im globalen Lebenszyklus können Sie Lebenszyklen angeben, die für bestimmte Auswahlschlüssel ausgeführt werden, die Sie in jedem Manifest angeben. Auswahlschlüssel sind Zeichenfolgen, die Abschnitte des globalen Lebenszyklus identifizieren, die für jedes Manifest ausgeführt werden sollen.
Die
all
Auswahltaste ist die Standardeinstellung für alle Abschnitte ohne Auswahltaste. Das bedeutet, dass Sie denall
Auswahlschlüssel in einem Manifest angeben können, um die Abschnitte des globalen Lebenszyklus ohne Auswahlschlüssel auszuführen. Sie müssen denall
Auswahlschlüssel im globalen Lebenszyklus nicht angeben.Wenn ein Manifest keinen Lebenszyklus oder keine Auswahlschlüssel definiert, verwendet das Kerngerät standardmäßig die
all
Auswahl. Das bedeutet, dass das Kerngerät in diesem Fall die Abschnitte des globalen Lebenszyklus verwendet, die keine Auswahltasten verwenden.Dieses Objekt enthält dieselben Informationen wie der Manifest-Lebenszyklus, Sie können jedoch Auswahlschlüssel auf jeder Ebene angeben, um Unterabschnitte des Lebenszyklus auszuwählen.
Tipp
Es wird empfohlen, für jede Auswahltaste nur Kleinbuchstaben zu verwenden, um Konflikte zwischen Auswahlschlüsseln und Lebenszyklusschlüsseln zu vermeiden. Lebenszyklusschlüssel beginnen mit einem Großbuchstaben.
Beispiel für einen globalen Lebenszyklus mit Auswahlschlüsseln der obersten Ebene
Lifecycle: key1: install: Skipif: either onpath
executable
or existsfile
Script: command1 key2: install: Script: command2 all: install: Script: command3Beispiel für einen globalen Lebenszyklus mit Auswahltasten auf unterster Ebene
Lifecycle: install: Script: key1: command1 key2: command2 all: command3
Beispiel für einen globalen Lebenszyklus mit mehreren Ebenen von Auswahlschlüsseln
Lifecycle: key1: install: Skipif: either onpath
executable
or existsfile
Script: command1 key2: install: Script: command2 all: install: Script: key3: command3 key4: command4 all: command5
Rezeptvariablen
Rezeptvariablen stellen Informationen aus der aktuellen Komponente und dem aktuellen Kern zur Verfügung, die Sie in Ihren Rezepten verwenden können. Sie können beispielsweise eine Rezeptvariable verwenden, um Komponentenkonfigurationsparameter an eine Anwendung zu übergeben, die Sie in einem Lifecycle-Skript ausführen.
Sie können Rezeptvariablen in den folgenden Abschnitten von Komponentenrezepten verwenden:
-
Lebenszyklus-Definitionen.
-
Definitionen der Komponentenkonfiguration, wenn Sie Greengrass Nucleus v2.6.0 oder höher verwenden und die interpolateComponentConfigurationKonfigurationsoption auf setzen.
true
Sie können auch Rezeptvariablen verwenden, wenn Sie Updates für die Komponentenkonfiguration bereitstellen.
Rezeptvariablen verwenden {recipe_variable}
Syntax. Die geschweiften Klammern stehen für eine Rezeptvariable.
AWS IoT Greengrass unterstützt die folgenden Rezeptvariablen:
component_dependency_name
:configuration:json_pointer
-
Der Wert eines Konfigurationsparameters für die Komponente, die dieses Rezept definiert, oder für eine Komponente, von der diese Komponente abhängt.
Sie können diese Variable verwenden, um einen Parameter für ein Skript bereitzustellen, das Sie im Lebenszyklus der Komponente ausführen.
Anmerkung
AWS IoT Greengrass unterstützt diese Rezeptvariable nur in Definitionen des Komponentenlebenszyklus.
Diese Rezeptvariable hat die folgenden Eingaben:
-
component_dependency_name
— (Optional) Der Name der Komponentenabhängigkeit, die abgefragt werden soll. Lassen Sie dieses Segment weg, um die Komponente abzufragen, die dieses Rezept definiert. Sie können nur direkte Abhängigkeiten angeben. -
json_pointer
— Der JSON Zeiger auf den auszuwertenden Konfigurationswert. JSONZeiger beginnen mit einem/
Schrägstrich. Um einen Wert in einer verschachtelten Komponentenkonfiguration zu identifizieren, verwenden Sie Schrägstriche (/
), um die Schlüssel für jede Ebene in der Konfiguration voneinander zu trennen. Sie können eine Zahl als Schlüssel verwenden, um einen Index in einer Liste anzugeben. Weitere Informationen finden Sie in der JSONZeigerspezifikation. AWS IoT Greengrass Core verwendet JSON Zeiger für Rezepte im YAML Format.
Der JSON Zeiger kann auf die folgenden Knotentypen verweisen:
-
Ein Wertknoten. AWS IoT Greengrass Core ersetzt die Rezeptvariable durch die Zeichenkettendarstellung des Werts. Nullwerte werden in
null
eine Zeichenfolge umgewandelt. -
Ein Objektknoten. AWS IoT Greengrass Core ersetzt die Rezeptvariable durch die serialisierte JSON Zeichenkettendarstellung dieses Objekts.
-
Kein Knoten. AWS IoT Greengrass Core ersetzt die Rezeptvariable nicht.
Beispielsweise ruft die
{configuration:/Message}
Rezeptvariable den Wert desMessage
Schlüssels in der Komponentenkonfiguration ab. Die{com.example.MyComponentDependency:configuration:/server/port}
Rezeptvariable ruft den Wert vonport
imserver
Konfigurationsobjekt einer Komponentenabhängigkeit ab. -
-
component_dependency_name
:artifacts:path -
Der Stammpfad der Artefakte für die Komponente, die dieses Rezept definiert, oder für eine Komponente, von der diese Komponente abhängt.
Wenn eine Komponente installiert wird, werden die Artefakte der Komponente in den Ordner AWS IoT Greengrass kopiert, den diese Variable verfügbar macht. Sie können diese Variable verwenden, um beispielsweise den Speicherort eines Skripts zu identifizieren, das im Lebenszyklus einer Komponente ausgeführt werden soll.
Der Ordner in diesem Pfad ist schreibgeschützt. Um Artefaktdateien zu ändern, kopieren Sie die Dateien an einen anderen Speicherort, z. B. in das aktuelle Arbeitsverzeichnis (
$PWD
oder)..
Ändern Sie dann die Dateien dort.Um ein Artefakt aus einer Komponentenabhängigkeit zu lesen oder auszuführen, müssen die entsprechenden
Execute
RechteRead
oder Rechte für das Artefakt vorliegen.ALL
Weitere Informationen finden Sie in den Artefaktberechtigungen, die Sie im Komponentenrezept definieren.Diese Rezeptvariable hat die folgenden Eingaben:
-
component_dependency_name
— (Optional) Der Name der Komponentenabhängigkeit, die abgefragt werden soll. Lassen Sie dieses Segment weg, um die Komponente abzufragen, die dieses Rezept definiert. Sie können nur direkte Abhängigkeiten angeben.
-
-
component_dependency_name
:artifacts:decompressedPath -
Der Stammpfad der dekomprimierten Archivartefakte für die Komponente, die dieses Rezept definiert, oder für eine Komponente, von der diese Komponente abhängt.
Wenn eine Komponente installiert wird, werden die Archivartefakte der Komponente in den Ordner AWS IoT Greengrass entpackt, den diese Variable verfügbar macht. Sie können diese Variable verwenden, um beispielsweise den Speicherort eines Skripts zu identifizieren, das im Lebenszyklus einer Komponente ausgeführt werden soll.
Jedes Artefakt wird in einen Ordner innerhalb des dekomprimierten Pfads entpackt, wobei der Ordner denselben Namen wie das Artefakt abzüglich seiner Erweiterung hat. Beispielsweise wird ein ZIP Artefakt mit dem Namen in den Ordner entpackt.
models.zip
{artifacts:decompressedPath}/models
Der Ordner in diesem Pfad ist schreibgeschützt. Um Artefaktdateien zu ändern, kopieren Sie die Dateien an einen anderen Speicherort, z. B. in das aktuelle Arbeitsverzeichnis (
$PWD
oder)..
Ändern Sie dann die Dateien dort.Um ein Artefakt aus einer Komponentenabhängigkeit zu lesen oder auszuführen, müssen die entsprechenden
Execute
RechteRead
oder Rechte für das Artefakt vorliegen.ALL
Weitere Informationen finden Sie in den Artefaktberechtigungen, die Sie im Komponentenrezept definieren.Diese Rezeptvariable hat die folgenden Eingaben:
-
component_dependency_name
— (Optional) Der Name der Komponentenabhängigkeit, die abgefragt werden soll. Lassen Sie dieses Segment weg, um die Komponente abzufragen, die dieses Rezept definiert. Sie können nur direkte Abhängigkeiten angeben.
-
-
component_dependency_name
:work:path -
Diese Funktion ist für Version 2.0.4 und höher der Greengrass Nucleus-Komponente verfügbar.
Der Arbeitspfad für die Komponente, die dieses Rezept definiert, oder für eine Komponente, von der diese Komponente abhängt. Der Wert dieser Rezeptvariablen entspricht der Ausgabe der
$PWD
Umgebungsvariablen und des Befehls pwd, wenn sie im Kontext der Komponente ausgeführt wird. Sie können diese Rezeptvariable verwenden, um Dateien zwischen einer Komponente und einer Abhängigkeit gemeinsam zu nutzen.
Der Ordner in diesem Pfad ist für die Komponente, die dieses Rezept definiert, und für andere Komponenten, die unter demselben Benutzer und derselben Gruppe ausgeführt werden, lesbar und beschreibbar.
Diese Rezeptvariable hat die folgenden Eingaben:
-
component_dependency_name
— (Optional) Der Name der Komponentenabhängigkeit, die abgefragt werden soll. Lassen Sie dieses Segment weg, um die Komponente abzufragen, die dieses Rezept definiert. Sie können nur direkte Abhängigkeiten angeben.
-
kernel:rootPath
-
Der AWS IoT Greengrass Core-Stammpfad.
iot:thingName
-
Diese Funktion ist für Version 2.3.0 und höher der Greengrass Nucleus-Komponente verfügbar.
Der Name der Sache des Kerngeräts. AWS IoT
Beispiele für Rezepte
Anhand der folgenden Rezeptbeispiele können Sie Rezepte für Ihre Komponenten erstellen.
AWS IoT Greengrass kuratiert einen Index von Greengrass-Komponenten, den sogenannten Greengrass-Softwarekatalog. Dieser Katalog verfolgt Greengrass-Komponenten, die von der Greengrass-Community entwickelt wurden. Aus diesem Katalog können Sie Komponenten herunterladen, ändern und bereitstellen, um Ihre Greengrass-Anwendungen zu erstellen. Weitere Informationen finden Sie unter Komponenten der Gemeinschaft.
Themen
Rezept für die Komponenten von Hello World
Das folgende Rezept beschreibt eine Hello World-Komponente, die ein Python-Skript ausführt. Diese Komponente unterstützt alle Plattformen und akzeptiert einen Message
Parameter, der als Argument an das Python-Skript AWS IoT Greengrass
übergeben wird. Dies ist das Rezept für die Hello World-Komponente im Tutorial Erste Schritte.
Beispiel für eine Python-Laufzeitkomponente
Das folgende Rezept beschreibt eine Komponente, die Python installiert. Diese Komponente unterstützt 64-Bit-Linux-Geräte.
Komponentenrezept, das mehrere Felder spezifiziert
Das folgende Komponentenrezept verwendet mehrere Rezeptfelder.