Komponente - AWS IoT Greengrass

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 -componentBefehl in der AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI), um benutzerdefinierte Greengrass-Komponenten zu erstellen, zu erstellen und zu veröffentlichen.

init

Initialisieren Sie einen Greengrass-Komponentenordner aus einer Komponentenvorlage oder Community-Komponente.

Die GDK-CLI ruft Community-Komponenten aus dem Greengrass Software Catalog und Komponentenvorlagen aus dem AWS IoT Greengrass Komponentenvorlagen-Repository auf ab GitHub.

Anmerkung

Wenn Sie GDK CLI v1.0.0 verwenden, müssen Sie diesen Befehl in einem leeren Ordner ausführen. Die GDK-CLI lädt die Vorlage oder die Community-Komponente in den aktuellen Ordner herunter.

Wenn Sie GDK CLI v1.1.0 oder höher verwenden, können Sie das --name Argument angeben, um den Ordner anzugeben, in den die GDK CLI die Vorlage oder Community-Komponente herunterlädt. Wenn Sie dieses Argument verwenden, geben Sie einen Ordner an, der nicht vorhanden ist. Die GDK-CLI erstellt den Ordner für Sie. Wenn Sie dieses Argument nicht angeben, verwendet die GDK-CLI den aktuellen Ordner, der leer sein muss.

Wenn die Komponente das ZIP-Build-System verwendet, komprimiert die GDK-CLI bestimmte Dateien im Ordner der Komponente in eine ZIP-Datei mit demselben Namen wie der Komponentenordner. Wenn der Name des Komponentenordners beispielsweise lautetHelloWorld, erstellt die GDK-CLI eine ZIP-Datei mit dem Namen HelloWorld.zip. Im Komponentenrezept muss der ZIP-Artefaktname mit dem Namen des Komponentenordners übereinstimmen. 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 Sie eine Vorlage oder Community-Komponente, die das ZIP-Build-System verwendet, in einen Ordner mit einem anderen Namen als die Vorlage oder Komponente initialisieren, müssen Sie den Namen des ZIP-Artefakts im Komponentenrezept ändern. Aktualisieren Sie die Lifecycle Definitionen Artifacts und so, dass der ZIP-Dateiname mit dem Namen des Komponentenordners übereinstimmt. Im folgenden Beispiel wird der ZIP-Dateiname in den Lifecycle Definitionen Artifacts und hervorgehoben.

JSON
{ ... "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
YAML
--- ... Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
Syntax
$ gdk component init [--language] [--template] [--repository] [--name]
Argumente (initialisieren aus Komponentenvorlage)
  • -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. Um verfügbare Vorlagen anzuzeigen, verwenden Sie den Befehl list.

    Sie müssen entweder --repository oder --language und angeben--template.

  • -n, --name – (Optional) Der Name des lokalen Ordners, in dem die GDK-CLI die Komponente initialisiert. Geben Sie einen Ordner an, der nicht vorhanden ist. Die GDK-CLI erstellt den Ordner für Sie.

    Diese Funktion ist für GDK CLI v1.1.0 und höher verfügbar.

Argumente (von der Community-Komponente initialisieren)
  • -r, --repository – Die Community-Komponente, die Sie im lokalen Ordner auschecken möchten. Um verfügbare Community-Komponenten anzuzeigen, verwenden Sie den Befehl list.

    Sie müssen entweder --repository oder --language und angeben--template.

  • -n, --name – (Optional) Der Name des lokalen Ordners, in dem die GDK-CLI die Komponente initialisiert. Geben Sie einen Ordner an, der nicht vorhanden ist. Die GDK-CLI erstellt den Ordner für Sie.

    Diese Funktion ist für GDK CLI v1.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 Hello World-Vorlage 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

Bauen Sie die Quelle einer Komponente in ein Rezept und Artefakte ein, die Sie im AWS IoT Greengrass Service veröffentlichen können. Die GDK-CLI führt das Build-System aus, das Sie in der GDK-CLI-Konfigurationsdatei angebengdk-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, erstellt die GDK-CLI ein Rezept und Artefakte im greengrass-build Ordner im Komponentenordner. Die GDK-CLI speichert das Rezept im greengrass-build/recipes Ordner und die Artefakte im greengrass-build/artifacts/componentName/componentVersion Ordner .

Wenn Sie GDK CLI v1.1.0 oder höher verwenden, kann das Komponentenrezept Artefakte angeben, die in einem S3-Bucket vorhanden sind, aber nicht im Build-Ordner der lokalen Komponente. Sie können diese Funktion verwenden, um die Bandbreitennutzung zu reduzieren, wenn Sie Komponenten mit großen Artefakten wie Machine-Learning-Modellen entwickeln.

Nachdem Sie eine Komponente erstellt haben, können Sie sie auf einem Greengrass-Kerngerät wie folgt testen:

  • Wenn Sie auf einem anderen Gerät als dem entwickeln, 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-Kerngerät bereit. Weitere Informationen finden Sie unter dem Befehl publish und Erstellen 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 Service veröffentlichen, um sie bereitzustellen, oder Sie können eine lokale Bereitstellung erstellen, um die Komponente zu installieren und auszuführen. Verwenden Sie die Greengrass-CLI, um eine lokale Bereitstellung zu erstellen. Weitere Informationen finden Sie unter Greengrass-Befehlszeilenschnittstelle und Testen von AWS IoT Greengrass Komponenten mit lokalen Bereitstellungen. Wenn Sie die lokale Bereitstellung erstellen, geben Sie greengrass-build/recipes als Rezeptordner und greengrass-build/artifacts als Artefaktordner 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 den Artefakt-URI im Rezept und erstellt eine neue Version der Komponente aus dem Rezept. Die GDK-CLI verwendet den S3-Bucket und die AWS Region, die Sie in der GDK-CLI-Konfigurationsdatei angebengdk-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 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 lautetbucket-region-accountId, wobei Bucket und Region die Werte sind, die Sie in angebengdk-config.json, und accountId Ihre AWS-Konto -ID ist. Die GDK-CLI erstellt den Bucket, wenn er nicht vorhanden ist.

Wenn Sie GDK CLI v1.2.0 oder höher verwenden, können Sie die in der GDK-CLI-Konfigurationsdatei AWS-Region angegebene mit dem --region Parameter überschreiben. Sie können auch zusätzliche Optionen mit dem ---optionsParameter angeben. Eine Liste der verfügbaren Optionen finden Sie unter CLI-Konfigurationsdatei des Greengrass Development Kit.

Wenn Sie diesen Befehl ausführen, veröffentlicht die GDK-CLI die Komponente mit der Version, die Sie im Rezept angeben. Wenn Sie angebenNEXT_PATCH, verwendet die GDK-CLI die nächste Patch-Version, die noch nicht vorhanden ist. Semantische Versionen verwenden ein wichtiges .minor .patch-Nummerierungssystem. Weitere Informationen finden Sie in der semantischen Versionsspezifikation .

Anmerkung

Wenn Sie GDK CLI v1.1.0 oder höher verwenden und diesen Befehl ausführen, prüft die GDK CLI, ob die Komponente erstellt wurde. Wenn die Komponente nicht erstellt wird, erstellt die GDK-CLI die Komponente, bevor sie die Komponente veröffentlicht.

Syntax
$ gdk component publish [--bucket] [--region] [--options]
Argumente
  • -b, --bucket – (Optional) Geben Sie den Namen des S3-Buckets an, in dem die GDK-CLI Komponentenartefakte veröffentlicht.

    Wenn Sie dieses Argument nicht angeben, lädt die GDK-CLI in den S3-Bucket hoch, dessen Name lautetbucket-region-accountId, wobei Bucket und Region die Werte sind, die Sie in angebengdk-config.json, und accountId Ihre AWS-Konto -ID ist. Die GDK-CLI erstellt den Bucket, wenn er nicht vorhanden ist.

    Die GDK-CLI erstellt den Bucket, wenn er nicht vorhanden ist.

    Diese Funktion ist für GDK CLI v1.1.0 und höher verfügbar.

  • -r, --region – (Optional) Geben Sie den Namen des AWS-Region an, wenn die Komponente erstellt wird. Dieses Argument überschreibt den Regionsnamen in der GDK-CLI-Konfiguration.

    Diese Funktion ist für GDK CLI v1.2.0 und höher verfügbar.

  • -o, --options (Optional) Geben Sie eine Liste von Optionen zum Veröffentlichen 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 v1.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.

Die GDK-CLI ruft Community-Komponenten aus dem Greengrass Software Catalog und Komponentenvorlagen aus dem AWS IoT Greengrass Komponentenvorlagen-Repository auf ab GitHub.

Sie können die Ausgabe dieses Befehls an den init-Befehl ü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 verfügbare Komponentenvorlagen aufzulisten. Dieser Befehl gibt den Namen und die Sprache jeder Vorlage im Format ausname-language. In lautet HelloWorld-pythonder Vorlagenname beispielsweise HelloWorld und die Sprache ist python.

  • -r, --repository – (Optional) Geben Sie dieses Argument an, um verfügbare Community-Komponenten-Repositorys 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