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.
CLI-Konfigurationsdatei des Greengrass Development Kit
Das AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) liest aus einer Konfigurationsdatei mit dem Namen gdk-config.json
, um Komponenten zu erstellen und zu veröffentlichen. Diese Konfigurationsdatei muss im Stammverzeichnis des Komponenten-Repositorys vorhanden sein. Sie können den Befehl GDK CLI init verwenden, um Komponenten-Repositorys mit dieser Konfigurationsdatei zu initialisieren.
Format der GDK-CLI-Konfigurationsdatei
Wenn Sie eine GDK-CLI-Konfigurationsdatei für eine Komponente definieren, geben Sie die folgenden Informationen im JSON-Format an.
gdk_version
-
Die Mindestversion der GDK-CLI, die mit dieser Komponente kompatibel ist. Dieser Wert muss eine der GDK-CLI-Versionen aus Versionen sein
. component
-
Die Konfiguration für diese Komponente.
componentName
-
author
-
Der Autor oder Herausgeber der Komponente.
version
-
Die Version der Komponente. Geben Sie eines der folgenden Elemente an:
-
NEXT_PATCH
– Wenn Sie diese Option wählen, legt die GDK-CLI die Version fest, wenn Sie die Komponente veröffentlichen. Die GDK-CLI fragt den AWS IoT Greengrass Service ab, um die neueste veröffentlichte Version der Komponente zu identifizieren. Anschließend wird die Version auf die nächste Patch-Version nach dieser Version festgelegt. Wenn Sie die Komponente noch nicht veröffentlicht haben, verwendet die GDK-CLI Version1.0.0
.Wenn Sie diese Option wählen, können Sie die Greengrass-CLI nicht verwenden, um die Komponente lokal auf Ihrem lokalen Entwicklungscomputer bereitzustellen und zu testen, auf dem die AWS IoT Greengrass Core-Software ausgeführt wird. Um lokale Bereitstellungen zu aktivieren, müssen Sie stattdessen eine semantische Version angeben.
-
Eine semantische Version, z. B.
1.0.0
. Semantische Versionen verwenden ein Hauptversions-.Nebenversions-.Patch-Nummerierungssystem. Weitere Informationen finden Sie in der semantischen Versionsspezifikation. Wenn Sie Komponenten auf einem Greengrass-Core-Gerät entwickeln, auf dem Sie die Komponente bereitstellen und testen möchten, wählen Sie diese Option. Sie müssen die Komponente mit einer bestimmten Version erstellen, um lokale Bereitstellungen mit der Greengrass-CLI zu erstellen.
-
build
-
Die Konfiguration, die verwendet werden soll, um die Quelle dieser Komponente in Artefakte zu integrieren. Dieses Objekt enthält die folgenden Informationen:
-
build_system
-
Das zu verwendende Build-System. Wählen Sie aus den folgenden Optionen aus:
-
zip
– Verpackt den Ordner der Komponente in eine ZIP-Datei, um als einziges Artefakt der Komponente zu definieren. Wählen Sie diese Option für die folgenden Komponententypen aus:-
Komponenten, die interpretierte Programmiersprachen wie Python oder verwenden JavaScript.
-
Komponenten, die andere Dateien als Code verpacken, z. B. Modelle für maschinelles Lernen oder andere Ressourcen.
Die GDK-CLI komprimiert den Ordner der Komponente in eine ZIP-Datei mit demselben Namen wie der Komponentenordner. Wenn der Name des Komponentenordners beispielsweise lautet
HelloWorld
, erstellt die GDK-CLI eine ZIP-Datei mit dem NamenHelloWorld.zip
.Anmerkung
Wenn Sie GDK CLI Version 1.0.0 auf einem Windows-Gerät verwenden, dürfen der Komponentenordner und die ZIP-Dateinamen nur Kleinbuchstaben enthalten.
Wenn die GDK-CLI den Ordner der Komponente in eine ZIP-Datei komprimiert, überspringt sie die folgenden Dateien:
-
Die Datei
gdk-config.json
-
Die Rezeptdatei (
recipe.json
oderrecipe.yaml
) -
Erstellen von Ordnern, z. B.
greengrass-build
-
-
maven
– Führt denmvn clean package
Befehl aus, um die Quelle der Komponente in Artefakte zu erstellen. Wählen Sie diese Option für Komponenten aus, die Mavenverwenden, z. B. Java-Komponenten. Auf Windows-Geräten ist diese Funktion für GDK CLI v1.1.0 und höher verfügbar.
-
gradle
– Führt dengradle build
Befehl aus, um die Quelle der Komponente in Artefakte zu erstellen. Wählen Sie diese Option für Komponenten aus, die Gradleverwenden. Diese Funktion ist für GDK CLI v1.1.0 und höher verfügbar. Das
gradle
Build-System unterstützt Kotlin DSL als Build-Datei. Diese Funktion ist für GDK CLI v1.2.0 und höher verfügbar. -
gradlew
– Führt dengradlew
Befehl aus, um die Quelle der Komponente in Artefakte zu erstellen. Wählen Sie diese Option für Komponenten aus, die den Gradle Wrapperverwenden. Diese Funktion ist für GDK CLI v1.2.0 und höher verfügbar.
-
custom
– Führt einen benutzerdefinierten Befehl aus, um die Quelle der Komponente in ein Rezept und Artefakte zu integrieren. Geben Sie den benutzerdefinierten Befehl imcustom_build_command
Parameter an.
-
custom_build_command
-
(Optional) Der benutzerdefinierte Build-Befehl, der für ein benutzerdefiniertes Build-System ausgeführt werden soll. Sie müssen diesen Parameter angeben, wenn Sie
custom
für angebenbuild_system
.Wichtig
Dieser Befehl muss ein Rezept und Artefakte in den folgenden Ordnern im Komponentenordner erstellen. Die GDK-CLI erstellt diese Ordner für Sie, wenn Sie den Komponentenerstellungsbefehl ausführen.
-
Rezeptordner:
greengrass-build/recipes
-
Artefakte-Ordner:
greengrass-build/artifacts/
componentName
/componentVersion
Ersetzen Sie
componentName
durch den Komponentennamen undcomponentVersion
durch die Komponentenversion oderNEXT_PATCH
.
Sie können eine einzelne Zeichenfolge oder eine Liste von Zeichenfolgen angeben, wobei jede Zeichenfolge ein Wort im Befehl ist. Um beispielsweise einen benutzerdefinierten Build-Befehl für eine C++-Komponente auszuführen, können Sie
cmake --build build --config Release
oder angeben["cmake", "--build", "build", "--config", "Release"]
.Ein Beispiel für ein benutzerdefiniertes Build-System finden Sie unter aws.greengrass.labs.LocalWebServer community component auf GitHub
. -
options
-
(Optional) Zusätzliche Konfigurationsoptionen, die während des Komponentenerstellungsprozesses verwendet werden.
Diese Funktion ist für GDK CLI v1.2.0 und höher verfügbar.
excludes
-
Eine Liste von globalen Mustern, die definieren, welche Dateien beim Erstellen der ZIP-Datei aus dem Komponentenverzeichnis ausgeschlossen werden sollen. Nur gültig, wenn
build_system
istzip
.Anmerkung
In den GDK-CLI-Versionen 1.4.0 und früher wird jede Datei, die mit einem Eintrag in der Ausschlussliste übereinstimmt, aus allen Unterverzeichnissen der Komponente ausgeschlossen. Um dasselbe Verhalten in GDK-CLI-Versionen 1.5.0 und höher
**/
zu erreichen, stellen Sie den vorhandenen Einträgen in der Ausschlussliste voran. Beispielsweise*.txt
schließt Textdateien nur aus dem Verzeichnis aus;**/*.txt
schließt Textdateien aus allen Verzeichnissen und Unterverzeichnissen aus.In GDK-CLI-Versionen 1.5.0 und höher wird möglicherweise eine Warnung während des Komponentenaufbaus angezeigt, wenn in der GDK-Konfigurationsdatei definiert
excludes
ist. Um diese Warnung zu deaktivieren, setzen Sie die UmgebungsvariableGDK_EXCLUDES_WARN_IGNORE
auftrue
.Die GDK-CLI schließt immer die folgenden Dateien aus der ZIP-Datei aus:
-
Die Datei
gdk-config.json
-
Die Rezeptdatei (
recipe.json
oderrecipe.yaml
) -
Erstellen von Ordnern, z. B.
greengrass-build
Die folgenden Dateien sind standardmäßig ausgeschlossen. Mit der
excludes
Option können Sie jedoch steuern, welche dieser Dateien ausgeschlossen werden.-
Jeder Ordner, der mit dem Präfix „test“ (
test*
) beginnt -
Alle ausgeblendeten Dateien
-
Den Ordner
node_modules
Wenn Sie die
excludes
Option angeben, schließt die GDK-CLI nur die Dateien aus, die Sie mit derexcludes
Option festgelegt haben. Wenn Sie dieexcludes
Option nicht angeben, schließt die GDK-CLI die zuvor genannten Standarddateien und Ordner aus. -
zip_name
-
Der ZIP-Dateiname, der beim Erstellen eines ZIP-Artefakts während des Erstellungsprozesses verwendet werden soll. Nur gültig, wenn
build_system
istzip
. Wenn leerbuild_system
ist, wird der Komponentenname für den ZIP-Dateinamen verwendet.
-
publish
-
Die Konfiguration, die zum Veröffentlichen dieser Komponente im AWS IoT Greengrass Service verwendet werden soll.
Wenn Sie GDK CLI v1.1.0 oder höher verwenden, können Sie das Argument angeben, um den S3
--bucket
-Bucket anzugeben, in den die GDK CLI die Artefakte der Komponente hochlädt. Wenn Sie dieses Argument nicht angeben, lädt die GDK-CLI in den S3-Bucket hoch, dessen Name lautet
, wobeibucket
-region
-accountId
Bucket
undRegion
die Werte sind, die Sie in angebengdk-config.json
, undaccountId
Ihre AWS-Konto -ID ist. Die GDK-CLI erstellt den Bucket, wenn er nicht vorhanden ist.Dieses Objekt enthält die folgenden Informationen:
bucket
-
Der S3-Bucket-Name, der zum Hosten von Komponentenartefakten verwendet werden soll.
region
-
Die AWS-Region, in der die GDK-CLI diese Komponente veröffentlicht.
Diese Eigenschaft ist optional, wenn Sie GDK CLI v1.3.0 oder höher verwenden.
options
-
(Optional) Zusätzliche Konfigurationsoptionen, die bei der Erstellung der Komponentenversion verwendet werden.
Diese Funktion ist für GDK CLI v1.2.0 und höher verfügbar.
file_upload_args
-
Eine JSON-Struktur, die Argumente enthält, die beim Hochladen von Dateien in einen Bucket an Amazon S3 gesendet werden, z. B. Metadaten und Verschlüsselungsmechanismen. Eine Liste der zulässigen Argumente finden Sie in der -
S3Transfer
Klasse in der Boto3-Dokumentation.
test-e2e
-
(Optional) Die Konfiguration, die beim end-to-end Testen der Komponente verwendet werden soll. Diese Funktion ist für GDK CLI v1.3.0 und höher verfügbar.
build
-
build_system
– Das zu verwendende Build-System. Die Standardoption istmaven
. Wählen Sie aus den folgenden Optionen aus: gtf_version
-
(Optional) Die Version des Greengrass Testing Framework (GTF), die als Abhängigkeit des end-to-end Testmoduls verwendet werden soll, wenn Sie das GDK-Projekt mit GTF initialisieren. Dieser Wert muss eine der GTF-Versionen aus Versionen
sein. Der Standardwert ist GTF Version 1.1.0. gtf_options
-
(Optional) Zusätzliche Konfigurationsoptionen, die beim end-to-end Testen der Komponente verwendet werden.
Die folgende Liste enthält die Optionen, die Sie mit GTF Version 1.1.0 verwenden können.
-
additional-plugins
– (Optional) Zusätzliche Cucumber-Plugins -
aws-region
– Zielt auf bestimmte regionale Endpunkte für -AWSServices ab. Standardmäßig ist das, was das AWS SDK erkennt. -
credentials-path
– Optionaler Pfad für AWS Profilanmeldeinformationen. Standardmäßig werden Anmeldeinformationen verwendet, die in der Hostumgebung erkannt wurden. -
credentials-path-rotation
– Optionale Rotationsdauer für AWS Anmeldeinformationen. Der Standardwert ist 15 Minuten oderPT15M
. -
csr-path
– Der Pfad für die CSR, mit der das Gerätezertifikat generiert wird. -
device-mode
– Das zu testende Zielgerät. Standardmäßig ist das lokale Gerät. -
env-stage
– Zielt auf die Bereitstellungsumgebung von Greengrass ab. Der Standardwert ist Produktion. -
existing-device-cert-arn
– Der ARN eines vorhandenen Zertifikats, das Sie als Gerätezertifikat für Greengrass verwenden möchten. -
feature-path
– Datei oder Verzeichnis, das zusätzliche Feature-Dateien enthält. Standardmäßig werden keine zusätzlichen Feature-Dateien verwendet. -
gg-cli-version
– Überschreibt die Version der Greengrass-CLI. Der Standardwert ist der Wert inggc.version
. -
gg-component-bucket
– Der Name eines vorhandenen Amazon S3-Buckets, der Greengrass-Komponenten enthält. -
gg-component-overrides
– Eine Liste von Greengrass-Komponentenüberschreibungen. -
gg-persist
– Eine Liste von Testelementen, die nach einem Testlauf bestehen bleiben sollen. Das Standardverhalten besteht darin, nichts beizubehalten. Zulässige Werte sind:aws.resources
installed.software
, undgenerated.files
. -
gg-runtime
– Eine Liste von Werten, die beeinflussen, wie der Test mit Testressourcen interagiert. Diese Werte ersetzen dengg.persist
Parameter . Wenn der Standardwert leer ist, wird davon ausgegangen, dass alle Testressourcen von Testfällen verwaltet werden, einschließlich der installierten Greengrass-Laufzeit. Akzeptierte Werte sind:aws.resources
installed.software
, undgenerated.files
. -
ggc-archive
– Der Pfad zur archivierten Greengrass-Kernkomponente. -
ggc-install-root
– Verzeichnis zur Installation der Greengrass-Kernkomponente. Standardmäßig sind test.temp.path und test run folder. -
ggc-log-level
– Legen Sie die Greengrass-Kernprotokollebene für den Testlauf fest. Der Standardwert ist „INFO“. -
ggc-tes-rolename
– Die IAM-Rolle, die AWS IoT Greengrass Core für den Zugriff auf -AWSServices übernimmt. Wenn keine Rolle mit dem angegebenen Namen vorhanden ist, wird eine erstellt und es wird eine Standardzugriffsrichtlinie verwendet. -
ggc-trusted-plugins
– Die durch Komma getrennte Liste der Pfade (auf dem Host) der vertrauenswürdigen Plugins, die Greengrass hinzugefügt werden müssen. Um den Pfad auf dem DUT selbst bereitzustellen, stellen Sie dem Pfad „dut:“ voran. -
ggc-user-name
– Der Wert user:group posixUser für den Greengrass-Kern. Standardmäßig wird der aktuelle Benutzername verwendet, der angemeldet ist. -
ggc-version
– Überschreibt die Version der ausgeführten Greengrass-Kernkomponente. Standardmäßig ist der Wert in ggc.archive angegeben. -
log-level
– Protokollebene des Testlaufs. Der Standardwert ist „INFO“. -
parallel-config
– Satz von Batch-Index und Anzahl der Batches als JSON-Zeichenfolge. Der Standardwert des Batch-Index ist 0 und die Anzahl der Batches ist 1. -
proxy-url
– Konfigurieren Sie alle Tests so, dass der Datenverkehr über diese URL geleitet wird. -
tags
– Führen Sie nur Feature-Tags aus. Kann mit „&“ überlappen -
test-id-prefix
– Ein gemeinsames Präfix, das auf alle testspezifischen Ressourcen angewendet wird, einschließlich AWS Ressourcennamen und Tags. Der Standardwert ist ein „gg“-Präfix. -
test-log-path
– Verzeichnis, das die Ergebnisse des gesamten Testlaufs enthält. Standardmäßig ist „testResults“. -
test-results-json
– Flag, um festzustellen, ob ein resultierender Cucumber-JSON-Bericht generiert wird, der auf die Festplatte geschrieben wird. Standardwert ist „true“. -
test-results-log
– Flag, um festzustellen, ob die Konsolenausgabe generiert und auf die Festplatte geschrieben wird. Standardwert "false". -
test-results-xml
– Flag, um festzustellen, ob ein resultierender JUnit-XML-Bericht generiert wird, der auf die Festplatte geschrieben wird. Standardwert ist „true“. -
test-temp-path
– Verzeichnis zum Generieren lokaler Testartefakte. Standardmäßig ist ein zufälliges temporäres Verzeichnis mit dem Präfix gg-testing. -
timeout-multiplier
– Multiplikator für alle Test-Timeouts bereitgestellt. Standard = 1.0.
-
Beispiele für GDK-CLI-Konfigurationsdateien
Sie können auf die folgenden Beispiele für GDK-CLI-Konfigurationsdateien verweisen, um Sie bei der Konfiguration von Greengrass-Komponentenumgebungen zu unterstützen.
Hallo Welt (Python)
Die folgende GDK-CLI-Konfigurationsdatei unterstützt eine Hello World-Komponente, die ein Python-Skript ausführt. Diese Konfigurationsdatei verwendet das zip
Build-System, um das Python-Skript der Komponente in eine ZIP-Datei zu verpacken, die die GDK-CLI als Artefakt hochlädt.
{ "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip", "options": { "excludes": [".*"] } }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "
some-key
": "some-value
" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }
Hallo Welt (Java)
Die folgende GDK-CLI-Konfigurationsdatei unterstützt eine Hello World-Komponente, die eine Java-Anwendung ausführt. Diese Konfigurationsdatei verwendet das maven
Build-System, um den Java-Quellcode der Komponente in eine JAR-Datei zu verpacken, die die GDK-CLI als Artefakt hochlädt.
{ "component": { "com.example.JavaHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "maven" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2", "options": { "file_upload_args": { "Metadata": { "
some-key
": "some-value
" } } } } }, "test-e2e":{ "build":{ "build_system": "maven" }, "gtf_version": "1.1.0", "gtf_options": { "tags": "Sample" } }, "gdk_version": "1.6.1" } }
Community-Komponenten
Mehrere Community-Komponenten im Greengrass Software Catalog verwenden die GDK-CLI. Sie können die GDK-CLI-Konfigurationsdateien in den Repositorys dieser Komponenten untersuchen.
So zeigen Sie die GDK-CLI-Konfigurationsdateien der Community-Komponenten an
-
Führen Sie den folgenden Befehl aus, um die Community-Komponenten aufzulisten, die die GDK-CLI verwenden.
gdk component list --repository
Die Antwort listet den Namen des GitHub Repositorys für jede Community-Komponente auf, die die GDK-CLI verwendet. Jedes Repository ist in der
awslabs
Organisation vorhanden.[2022-02-22 17:27:31] INFO - Listing all the available component repositories from Greengrass Software Catalog. [2022-02-22 17:27:31] INFO - Found '6' component repositories to display. 1. aws-greengrass-labs-database-influxdb 2. aws-greengrass-labs-telemetry-influxdbpublisher 3. aws-greengrass-labs-dashboard-grafana 4. aws-greengrass-labs-dashboard-influxdb-grafana 5. aws-greengrass-labs-local-web-server 6. aws-greengrass-labs-lookoutvision-gstreamer
-
Öffnen Sie das GitHub Repository einer Community-Komponente unter der folgenden URL. Ersetzen Sie durch
community-component-name
den Namen einer Community-Komponente aus dem vorherigen Schritt.https://github.com/awslabs/
community-component-name