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.
Komponente
Verwenden Sie den component
Befehl in der Befehlszeilenschnittstelle (GDKCLI) des AWS IoT Greengrass Development Kit, um benutzerdefinierte Greengrass-Komponenten zu erstellen, zu erstellen und zu veröffentlichen.
init
Initialisieren Sie einen Greengrass-Komponentenordner aus einer Komponentenvorlage oder Community-Komponente.
Das GDK CLI ruft Community-Komponenten aus dem Greengrass-Softwarekatalog und Komponentenvorlagen aus dem AWS IoT Greengrass Komponentenvorlagen-Repository
Anmerkung
Wenn Sie GDK CLI v1.0.0 verwenden, müssen Sie diesen Befehl in einem leeren Ordner ausführen. Der GDK CLI lädt die Vorlage oder Community-Komponente in den aktuellen Ordner herunter.
Wenn Sie GDK CLI Version 1.1.0 oder höher verwenden, können Sie das --name
Argument angeben, um den Ordner anzugeben, in den die Vorlage oder Community-Komponente GDK CLI heruntergeladen wird. Wenn Sie dieses Argument verwenden, geben Sie einen Ordner an, der nicht existiert. Der GDK CLI erstellt den Ordner für Sie. Wenn Sie dieses Argument nicht angeben, GDK CLI verwendet der den aktuellen Ordner, der leer sein muss.
Wenn die Komponente das GDKCLIZIP-Build-System verwendet, werden bestimmte Dateien im Ordner der Komponente in eine Zip-Datei mit demselben Namen wie der Komponentenordner gepackt. Wenn der Name des Komponentenordners beispielsweise lautetHelloWorld
, wird eine ZIP-Datei mit dem Namen GDK CLI HelloWorld.zip
erstellt. Im Komponentenrezept muss der Name des ZIP-Artefakts mit dem Namen des Komponentenordners übereinstimmen. Wenn Sie GDK CLI Version 1.0.0 auf einem Windows-Gerät verwenden, dürfen die Namen des Komponentenordners und der ZIP-Dateien nur Kleinbuchstaben enthalten.
Wenn Sie eine Vorlage oder Community-Komponente, die das ZIP-Build-System verwendet, mit einem Ordner initialisieren, der einen anderen Namen als die Vorlage oder Komponente hat, müssen Sie den Namen des ZIP-Artefakts im Komponentenrezept ändern. Aktualisieren Sie die Lifecycle
Definitionen Artifacts
und so, dass der Name der Zip-Datei mit dem Namen des Komponentenordners übereinstimmt. Im folgenden Beispiel wird der Name der Zip-Datei in den Lifecycle
Definitionen Artifacts
und hervorgehoben.
- Syntax
-
$
gdk component init [--language] [--template] [--repository] [--name] - Argumente (aus der Komponentenvorlage initialisieren)
-
-
-l
,--language
— Die Programmiersprache, die für die von Ihnen angegebene Vorlage verwendet werden soll.Sie müssen entweder
--repository
oder--language
und angeben--template
. -
-t
,--template
— Die Komponentenvorlage, die für ein lokales Komponentenprojekt verwendet werden soll. Verwenden Sie den Befehl list, um die verfügbaren Vorlagen anzuzeigen.Sie müssen entweder
--repository
oder--language
und angeben--template
. -
-n
,--name
— (Optional) Der Name des lokalen Ordners, in dem die GDK CLI Komponente initialisiert wird. Geben Sie einen Ordner an, der nicht existiert. Der GDK CLI erstellt den Ordner für Sie.Diese Funktion ist für GDK CLI Version 1.1.0 und höher verfügbar.
-
- Argumente (aus der Community-Komponente initialisieren)
-
-
-r
,--repository
— Die Community-Komponente, die in den lokalen Ordner ausgecheckt werden soll. Verwenden Sie den Befehl list, um die verfügbaren Community-Komponenten anzuzeigen.Sie müssen entweder
--repository
oder--language
und angeben--template
. -
-n
,--name
— (Optional) Der Name des lokalen Ordners, in dem die GDK CLI Komponente initialisiert wird. Geben Sie einen Ordner an, der nicht existiert. Der GDK CLI erstellt den Ordner für Sie.Diese Funktion ist für GDK CLI Version 1.1.0 und höher verfügbar.
-
- Ausgabe
-
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen, um einen Komponentenordner aus der Python-Vorlage Hello World zu initialisieren.
$ gdk component init -l python -t HelloWorld [2021-11-29 12:51:40] INFO - Initializing the project directory with a python component template - 'HelloWorld'. [2021-11-29 12:51:40] INFO - Fetching the component template 'HelloWorld-python' from Greengrass Software Catalog.
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen, um einen Komponentenordner aus einer Community-Komponente zu initialisieren.
$ gdk component init -r aws-greengrass-labs-database-influxdb [2022-01-24 15:44:33] INFO - Initializing the project directory with a component from repository catalog - 'aws-greengrass-labs-database-influxdb'. [2022-01-24 15:44:33] INFO - Fetching the component repository 'aws-greengrass-labs-database-influxdb' from Greengrass Software Catalog.
build
Erstellen Sie aus der Quelle einer Komponente ein Rezept und Artefakte, die Sie im AWS IoT Greengrass
Service veröffentlichen können. Der GDK CLI führt das Build-System aus, das Sie in der GDKCLIKonfigurationsdatei angeben,gdk-config.json
. Sie müssen diesen Befehl in demselben Ordner ausführen, in dem sich die gdk-config.json
Datei befindet.
Wenn Sie diesen Befehl ausführen, GDK CLI erstellt der ein Rezept und Artefakte in dem greengrass-build
Ordner im Komponentenordner. Der GDK CLI speichert das Rezept im greengrass-build/recipes
Ordner und speichert die Artefakte im greengrass-build/artifacts/
Ordner.componentName
/componentVersion
Wenn Sie GDK CLI Version 1.1.0 oder höher verwenden, kann das Komponentenrezept Artefakte angeben, die in einem S3-Bucket vorhanden sind, aber nicht im lokalen Komponenten-Build-Ordner. Sie können diese Funktion verwenden, um die Bandbreitennutzung zu reduzieren, wenn Sie Komponenten mit großen Artefakten entwickeln, z. B. Modelle für maschinelles Lernen.
Nachdem Sie eine Komponente erstellt haben, können Sie eine der folgenden Aktionen ausführen, um sie auf einem Greengrass-Core-Gerät zu testen:
-
Wenn Sie auf einem anderen Gerät entwickeln als auf dem, auf dem Sie die AWS IoT Greengrass Core-Software ausführen, müssen Sie die Komponente veröffentlichen, um sie auf einem Greengrass-Core-Gerät bereitzustellen. Veröffentlichen Sie die Komponente im AWS IoT Greengrass Service und stellen Sie sie auf dem Greengrass-Core-Gerät bereit. Weitere Informationen finden Sie unter dem Befehl publish undErstellen von Bereitstellungen.
-
Wenn Sie auf demselben Gerät entwickeln, auf dem Sie die AWS IoT Greengrass Core-Software ausführen, können Sie die Komponente im AWS IoT Greengrass Dienst veröffentlichen, um sie bereitzustellen, oder Sie können eine lokale Bereitstellung erstellen, um die Komponente zu installieren und auszuführen. Verwenden Sie GreengrassCLI, um eine lokale Bereitstellung zu erstellen. Weitere Informationen erhalten Sie unter Greengrass-Befehlszeilenschnittstelle und Testen von AWS IoT Greengrass Komponenten mit lokalen Bereitstellungen. Wenn Sie das lokale Deployment erstellen, geben Sie
greengrass-build/recipes
als Ordner für Rezepte undgreengrass-build/artifacts
als Ordner für Artefakte an.
- Syntax
-
$
gdk component build - Argumente
-
None
- Ausgabe
-
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen.
$ gdk component build [2021-11-29 13:18:49] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:18:49] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:18:49] INFO - Building the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:18:49] INFO - Using 'zip' build system to build the component. [2021-11-29 13:18:49] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'. [2021-11-29 13:18:49] INFO - Zipping source code files of the component. [2021-11-29 13:18:49] INFO - Copying over the build artifacts to the greengrass component artifacts build folder. [2021-11-29 13:18:49] INFO - Updating artifact URIs in the recipe. [2021-11-29 13:18:49] INFO - Creating component recipe in 'C:\Users\MyUser\Documents\greengrass-components\python\HelloWorld\greengrass-build\recipes'.
publish
Veröffentlichen Sie diese Komponente im AWS IoT Greengrass Service. Dieser Befehl lädt Build-Artefakte in einen S3-Bucket hoch, aktualisiert das Artefakt URI im Rezept und erstellt anhand des Rezepts eine neue Version der Komponente. Der GDK CLI verwendet den S3-Bucket und die AWS Region, die Sie in der GDKCLIKonfigurationsdatei angeben,. gdk-config.json
Sie müssen diesen Befehl in demselben Ordner ausführen, in dem sich die gdk-config.json
Datei befindet.
Wenn Sie GDK CLI Version 1.1.0 oder höher verwenden, können Sie das --bucket
Argument angeben, um den S3-Bucket anzugeben, in den die Artefakte der Komponente GDK CLI hochgeladen werden. Wenn Sie dieses Argument nicht angeben, werden die GDK CLI Uploads in den S3-Bucket ausgeführt, dessen Name
, wo bucket
-region
-accountId
bucket
und die Werte region
sind, in denen Sie angebengdk-config.json
, und der Ihre ID accountId
ist. AWS-Konto Der GDK CLI erstellt den Bucket, falls er nicht existiert.
Wenn Sie GDK CLI Version 1.2.0 oder höher verwenden, können Sie die in der GDK CLI Konfigurationsdatei AWS-Region angegebenen Werte mithilfe des --region
Parameters überschreiben. Sie können mit dem --options
Parameter auch zusätzliche Optionen angeben. Eine Liste der verfügbaren Optionen finden Sie unterCLI-Konfigurationsdatei des Greengrass Development Kit.
Wenn Sie diesen Befehl ausführen, GDK CLI veröffentlicht der die Komponente mit der Version, die Sie im Rezept angeben. Wenn Sie angebenNEXT_PATCH
, GDK CLI verwendet der die nächste Patch-Version, die noch nicht vorhanden ist. Semantische Versionen verwenden eine Hauptversion. geringfügig. Patch-Nummerierungssystem. Weitere Informationen finden Sie in der semantischen Versionsspezifikation
Anmerkung
Wenn Sie GDK CLI Version 1.1.0 oder höher verwenden, wird bei der Ausführung dieses Befehls GDK CLI geprüft, ob die Komponente erstellt wurde. Wenn die Komponente nicht erstellt wurde, GDK CLI erstellt sie die Komponente, bevor sie veröffentlicht wird.
- Syntax
-
$
gdk component publish [--bucket] [--region] [--options] - Argumente
-
-
-b
,--bucket
— (Optional) Geben Sie den Namen des S3-Buckets an, in dem die Komponentenartefakte GDK CLI veröffentlicht werden.Wenn Sie dieses Argument nicht angeben, werden die GDK CLI Uploads in den S3-Bucket ausgeführt, dessen Name
, wobucket
-region
-accountId
bucket
und die Werteregion
sind, in denen Sie angebengdk-config.json
, und der Ihre AWS-Konto IDaccountId
ist. Der GDK CLI erstellt den Bucket, falls er nicht existiert.Der GDK CLI erstellt den Bucket, falls er nicht existiert.
Diese Funktion ist für GDK CLI Version 1.1.0 und höher verfügbar.
-
-r
,--region
— (Optional) Geben Sie bei der Erstellung der Komponente AWS-Region den Namen des Ziels an. Dieses Argument überschreibt den Namen der Region in der GDK CLI Konfiguration.Diese Funktion ist für GDK CLI Version 1.2.0 und höher verfügbar.
-
-o
,--options
(Optional) Geben Sie eine Liste mit Optionen für die Veröffentlichung einer Komponente an. Das Argument muss eine gültige JSON Zeichenfolge oder ein Dateipfad zu einer JSON Datei sein, die die Veröffentlichungsoptionen enthält. Dieses Argument überschreibt die Optionen in der GDK CLI Konfiguration.Diese Funktion ist für GDK CLI Version 1.2.0 und höher verfügbar.
-
- Ausgabe
-
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen.
$ gdk component publish [2021-11-29 13:45:29] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:45:29] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:45:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials [2021-11-29 13:45:30] INFO - Publishing the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:45:30] INFO - No private version of the component 'com.example.PythonHelloWorld' exist in the account. Using '1.0.0' as the next version to create. [2021-11-29 13:45:30] INFO - Uploading the component built artifacts to s3 bucket. [2021-11-29 13:45:30] INFO - Uploading component artifacts to S3 bucket: {bucket}. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html. [2021-11-29 13:45:30] INFO - Not creating an artifacts bucket as it already exists. [2021-11-29 13:45:30] INFO - Updating the component recipe com.example.PythonHelloWorld-1.0.0. [2021-11-29 13:45:30] INFO - Creating a new greengrass component com.example.PythonHelloWorld-1.0.0 [2021-11-29 13:45:30] INFO - Created private version '1.0.0' of the component in the account.'com.example.PythonHelloWorld'.
auflisten
Rufen Sie die Liste der verfügbaren Komponentenvorlagen und Community-Komponenten ab.
Das GDK CLI ruft Community-Komponenten aus dem Greengrass-Softwarekatalog und Komponentenvorlagen aus dem AWS IoT Greengrass Komponentenvorlagen-Repository
Sie können die Ausgabe dieses Befehls an den Befehl init übergeben, um Komponenten-Repositorys aus Vorlagen und Community-Komponenten zu initialisieren.
- Syntax
-
$
gdk component list [--template] [--repository] - Argumente
-
-
-t
,--template
— (Optional) Geben Sie dieses Argument an, um die verfügbaren Komponentenvorlagen aufzulisten. Dieser Befehl gibt den Namen und die Sprache jeder Vorlage im Format aus
. Zum Beispiel ist inname
-language
HelloWorld-python
der VorlagennameHelloWorld
und die Sprache istpython
. -
-r
,--repository
— (Optional) Geben Sie dieses Argument an, um die verfügbaren Repositorys für Community-Komponenten aufzulisten.
-
- Ausgabe
-
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen.
$ gdk component list --template [2021-11-29 12:29:04] INFO - Listing all the available component templates from Greengrass Software Catalog. [2021-11-29 12:29:04] INFO - Found '2' component templates to display. 1. HelloWorld-python 2. HelloWorld-java