

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 Befehlszeilenschnittstelle für das Entwicklungskit
<a name="greengrass-development-kit-cli"></a>

Das AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) bietet Funktionen, mit denen Sie [benutzerdefinierte](develop-greengrass-components.md) Greengrass-Komponenten entwickeln können. Sie können die GDK-CLI verwenden, um benutzerdefinierte Komponenten zu erstellen, zu erstellen und zu veröffentlichen. Wenn Sie ein Komponenten-Repository mit der GDK-CLI erstellen, können Sie mit einer Vorlage oder einer Community-Komponente aus dem [Greengrass-Softwarekatalog](greengrass-software-catalog.md) beginnen. Anschließend können Sie ein Build-System wählen, das Dateien als ZIP-Archive verpackt, ein Maven- oder Gradle-Build-Skript verwendet oder einen benutzerdefinierten Build-Befehl ausführt. Nachdem Sie eine Komponente erstellt haben, können Sie sie mit der GDK-CLI im AWS IoT Greengrass Service veröffentlichen, sodass Sie die AWS IoT Greengrass Konsole oder API verwenden können, um die Komponente auf Ihren Greengrass-Kerngeräten bereitzustellen.

Wenn Sie Greengrass-Komponenten ohne die GDK-CLI entwickeln, müssen Sie die Version und das Artefakt URIs in der [Komponentenrezeptdatei](component-recipe-reference.md) jedes Mal aktualisieren, wenn Sie eine neue Version der Komponente erstellen. Wenn Sie die GDK-CLI verwenden, kann sie die Version und das Artefakt jedes Mal, wenn Sie eine neue Version der Komponente veröffentlichen, automatisch URIs für Sie aktualisieren.

Die GDK-CLI ist Open Source und verfügbar unter GitHub. Sie können die GDK-CLI an Ihre Anforderungen an die Komponentenentwicklung anpassen und erweitern. Wir laden Sie ein, Issues und Pull-Requests im GitHub Repository zu öffnen. Die GDK-CLI-Quelle finden Sie unter dem folgenden Link: [https://github.com/aws-greengrass/aws-greengrass-gdk-cli](https://github.com/aws-greengrass/aws-greengrass-gdk-cli).

## Voraussetzungen
<a name="gdk-cli-prerequisites"></a>

Um das Greengrass Development Kit CLI zu installieren und zu verwenden, benötigen Sie Folgendes:
+ Ein AWS-Konto. Falls Sie noch keines haben, beachten Sie die Informationen unter [Richten Sie eine ein AWS-Konto](setting-up.md#set-up-aws-account).
+ Ein Windows-, macOS- oder UNIX-ähnlicher Entwicklungscomputer mit einer Internetverbindung.
+ Für GDK CLI Version 1.1.0 oder höher ist [Python](https://www.python.org/downloads/) 3.6 oder höher auf Ihrem Entwicklungscomputer installiert.

  Für GDK CLI Version 1.0.0 ist [Python](https://www.python.org/downloads/) 3.8 oder höher auf Ihrem Entwicklungscomputer installiert.
+ [Git](https://git-scm.com/) ist auf Ihrem Entwicklungscomputer installiert.
+ <a name="development-component-aws-cli-prerequisite"></a>AWS Command Line Interface (AWS CLI) wurde mit Anmeldeinformationen auf Ihrem Entwicklungscomputer installiert und konfiguriert. Weitere Informationen finden Sie unter [Installation, Aktualisierung und Deinstallation](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) [von AWS CLI und Konfiguration von AWS CLI im AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) *Benutzerhandbuch*.
**Anmerkung**  
Wenn Sie einen Raspberry Pi oder ein anderes 32-Bit-ARM-Gerät verwenden, installieren Sie AWS CLI V1. AWS CLI V2 ist für 32-Bit-ARM-Geräte nicht verfügbar. Weitere Informationen finden Sie unter [Installation, Aktualisierung und Deinstallation von AWS CLI Version 1.](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html)
+ Um die GDK-CLI zum Veröffentlichen von Komponenten im AWS IoT Greengrass Service zu verwenden, benötigen Sie die folgenden Berechtigungen:
  + `s3:CreateBucket`
  + `s3:GetBucketLocation`
  + `s3:PutObject`
  + `greengrass:CreateComponentVersion`
  + `greengrass:ListComponentVersions`
+ Um mit der GDK-CLI eine Komponente zu erstellen, deren Artefakte in einem S3-Bucket und nicht im lokalen Dateisystem existieren, benötigen Sie die folgenden Berechtigungen:
  + `s3:ListBucket`

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

## Änderungsprotokoll
<a name="gdk-cli-changelog"></a>

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der GDK-CLI beschrieben. Weitere Informationen finden Sie auf der [Seite GDK CLI Releases](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/releases) unter GitHub.


|  **Version**  |  **Änderungen**  | 
| --- | --- | 
|  1.6.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.6.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.6.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.5.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.4.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.0.0  |  Erste Version  | 

# Installieren oder aktualisieren Sie die AWS IoT Greengrass Development-Kit-Befehlszeilenschnittstelle
<a name="install-greengrass-development-kit-cli"></a>

Das AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) basiert auf Python, sodass Sie es auf Ihrem Entwicklungscomputer installieren können. `pip`

**Tipp**  
Sie können die GDK-CLI auch in virtuellen Python-Umgebungen wie [venv](https://docs.python.org/3/library/venv.html#module-venv) installieren. Weitere Informationen finden Sie unter [Virtuelle Umgebungen und Pakete](https://docs.python.org/3/tutorial/venv.html) in der *Python 3-Dokumentation*.

**Um die GDK-CLI zu installieren oder zu aktualisieren**

1. Führen Sie den folgenden Befehl aus, um die neueste Version der GDK-CLI aus dem [GitHubRepository](https://github.com/aws-greengrass/aws-greengrass-gdk-cli) zu installieren.

   ```
   python3 -m pip install -U git+https://github.com/aws-greengrass/aws-greengrass-gdk-cli.git@v1.6.2
   ```
**Anmerkung**  
Um eine bestimmte Version der GDK-CLI zu installieren, *versionTag* ersetzen Sie sie durch das zu installierende Versions-Tag. Sie können Versionstags für die GDK-CLI in ihrem [GitHubRepository](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/tags) anzeigen.  

   ```
   python3 -m pip install -U git+https://github.com/aws-greengrass/aws-greengrass-gdk-cli.git@versionTag
   ```

1. <a name="gdk-cli-verify-installation"></a>Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die GDK-CLI erfolgreich installiert wurde.

   ```
   gdk --help
   ```

   Wenn der `gdk` Befehl nicht gefunden wird, fügen Sie seinen Ordner zu PATH hinzu.
   + Auf Linux-Geräten fügen Sie `/home/MyUser/.local/bin` es zu PATH hinzu und *MyUser* ersetzen Sie es durch den Namen Ihres Benutzers.
   + Fügen Sie auf Windows-Geräten PATH `PythonPath\\Scripts` hinzu und *PythonPath* ersetzen Sie es durch den Pfad zum Python-Ordner auf Ihrem Gerät.

Sie können jetzt die GDK-CLI verwenden, um Greengrass-Komponenten zu erstellen, zu erstellen und zu veröffentlichen. Weitere Informationen zur Verwendung der GDK-CLI finden Sie unter[AWS IoT Greengrass Befehle für die Befehlszeilenschnittstelle des Development Kits](greengrass-development-kit-cli-commands.md).

# AWS IoT Greengrass Befehle für die Befehlszeilenschnittstelle des Development Kits
<a name="greengrass-development-kit-cli-commands"></a>

Das AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) bietet eine Befehlszeilenschnittstelle, mit der Sie Greengrass-Komponenten auf Ihrem Entwicklungscomputer erstellen, erstellen und veröffentlichen können. GDK-CLI-Befehle verwenden das folgende Format.

```
gdk <command> <subcommand> [arguments]
```

Wenn Sie [die GDK-CLI installieren](install-greengrass-development-kit-cli.md), fügt das Installationsprogramm dem PATH `gdk` etwas hinzu, sodass Sie die GDK-CLI von der Befehlszeile aus ausführen können.

Sie können die folgenden Argumente mit jedem Befehl verwenden:
+ Verwenden Sie `-h` oder `--help` für Informationen zu einem GDK-CLI-Befehl.
+ Verwenden Sie `-v` oder`--version`, um zu sehen, welche Version von GDK CLI installiert ist.
+ Verwenden Sie `-d` oder`--debug`, um ausführliche Protokolle auszugeben, die Sie zum Debuggen der GDK-CLI verwenden können.

In diesem Abschnitt werden die GDK-CLI-Befehle beschrieben und Beispiele für jeden Befehl bereitgestellt. Die Zusammenfassung für jeden Befehl zeigt seine Argumente und ihre Verwendung. Optionale Argumente werden in eckigen Klammern angezeigt.

**Topics**
+ [Komponente](greengrass-development-kit-cli-component.md)
+ [config](greengrass-development-kit-cli-config.md)
+ [test-e2e](greengrass-development-kit-cli-test.md)

# Komponente
<a name="greengrass-development-kit-cli-component"></a>

Verwenden Sie den `component` Befehl im AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI), um benutzerdefinierte Greengrass-Komponenten zu erstellen, zu erstellen und zu veröffentlichen.

**Topics**
+ [init](#greengrass-development-kit-cli-component-init)
+ [build](#greengrass-development-kit-cli-component-build)
+ [publish](#greengrass-development-kit-cli-component-publish)
+ [auflisten](#greengrass-development-kit-cli-component-list)

## init
<a name="greengrass-development-kit-cli-component-init"></a>

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

<a name="gdk-cli-component-templates-community-components"></a>Die GDK CLI ruft Community-Komponenten aus dem [Greengrass-Softwarekatalog](greengrass-software-catalog.md) und Komponentenvorlagen aus dem Component [AWS IoT Greengrass Templates-Repository](https://github.com/aws-greengrass/aws-greengrass-component-templates) ab. GitHub

**Anmerkung**  
<a name="gdk-cli-component-init-empty-folder-requirement"></a>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 Community-Komponente in den aktuellen Ordner herunter.  
<a name="gdk-cli-component-init-empty-folder-requirement-gdk-cli-v1.1.0"></a>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 existiert. 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](gdk-cli-configuration-file.md#gdk-cli-configuration-file-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 lautet`HelloWorld`, erstellt die GDK-CLI eine ZIP-Datei mit dem Namen`HelloWorld.zip`. 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, für 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 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.  

```
{
  ...
  "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}"
      }
    }
  ]
}
```

```
---
...
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 (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](#greengrass-development-kit-cli-component-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 die Komponente initialisiert. Geben Sie einen Ordner an, der nicht existiert. 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 aus initialisieren)**  
+ `-r`, `--repository` — Die Community-Komponente, die in den lokalen Ordner ausgecheckt werden soll. Verwenden Sie den Befehl [list](#greengrass-development-kit-cli-component-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 die Komponente initialisiert. Geben Sie einen Ordner an, der nicht existiert. 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-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
<a name="greengrass-development-kit-cli-component-build"></a>

Erstellen Sie aus der Quelle einer Komponente ein Rezept und Artefakte, 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](gdk-cli-configuration-file.md) 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, erstellt die GDK-CLI ein Rezept und Artefakte in dem `greengrass-build` Ordner im Komponentenordner. Die GDK-CLI speichert das Rezept im `greengrass-build/recipes` Ordner und speichert 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 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](#greengrass-development-kit-cli-component-build) und[Erstellen von Bereitstellungen](create-deployments.md).
+ 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 die Greengrass-CLI, um eine lokale Bereitstellung zu erstellen. Weitere Informationen erhalten Sie unter [Greengrass-Befehlszeilenschnittstelle](gg-cli.md) und [Testen Sie AWS IoT Greengrass Komponenten mit lokalen Bereitstellungen](test-components.md). Wenn Sie das lokale Deployment erstellen, geben Sie `greengrass-build/recipes` als Ordner für Rezepte und `greengrass-build/artifacts` als Ordner für Artefakte an.

**Syntax**  

```
$ gdk component build
```

**Argumente**  
Keine

**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
<a name="greengrass-development-kit-cli-component-publish"></a>

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 anhand des Rezepts eine neue Version der Komponente. Die GDK-CLI verwendet den S3-Bucket und die AWS Region, die Sie in der [GDK-CLI-Konfigurationsdatei](gdk-cli-configuration-file.md) angeben. `gdk-config.json` Sie müssen diesen Befehl in demselben Ordner ausführen, in dem sich die `gdk-config.json` Datei befindet.

<a name="gdk-cli-s3-bucket-name-formation"></a>Wenn Sie GDK CLI v1.1.0 oder höher verwenden, können Sie das `--bucket` Argument angeben, um den S3-Bucket anzugeben, in den die GDK-CLI die Artefakte der Komponente hochlädt. <a name="gdk-cli-s3-bucket-name-formation-format"></a>Wenn Sie dieses Argument nicht angeben, lädt die GDK-CLI in den S3-Bucket hoch, dessen Name`bucket-region-accountId`, wo *bucket* und *region* sind die Werte, in denen Sie angeben`gdk-config.json`, *accountId* ist und der Ihre AWS-Konto ID ist. Die GDK-CLI erstellt den Bucket, falls er nicht existiert.

Wenn Sie GDK CLI v1.2.0 oder höher verwenden, können Sie die in der GDK-CLI-Konfigurationsdatei AWS-Region angegebenen Werte mithilfe des Parameters überschreiben. `--region` Sie können mit dem Parameter auch zusätzliche Optionen angeben. `--options` Eine Liste der verfügbaren Optionen finden Sie unter[CLI-Konfigurationsdatei für das Greengrass Development Kit](gdk-cli-configuration-file.md).

Wenn Sie diesen Befehl ausführen, veröffentlicht die GDK-CLI die Komponente mit der Version, die Sie im Rezept angeben. Wenn Sie angeben`NEXT_PATCH`, verwendet die GDK-CLI die nächste Patch-Version, die noch nicht existiert. *Semantische Versionen verwenden eine Hauptversion.* *geringfügig*. *Patch-Nummerierungssystem*. Weitere Informationen finden Sie in der [semantischen Versionsspezifikation](https://semver.org/).

**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 wurde, erstellt die GDK-CLI [die Komponente](#greengrass-development-kit-cli-component-build), 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.

   <a name="gdk-cli-s3-bucket-name-formation-format"></a>Wenn Sie dieses Argument nicht angeben, lädt die GDK-CLI in den S3-Bucket hoch, dessen Name`bucket-region-accountId`, wo *bucket* und *region* sind die Werte, in denen Sie angeben`gdk-config.json`, *accountId* ist und der Ihre AWS-Konto ID ist. Die GDK-CLI erstellt den Bucket, falls er nicht existiert. 

  Die GDK-CLI erstellt den Bucket, falls er nicht existiert.

  Diese Funktion ist für GDK CLI v1.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 v1.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 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
<a name="greengrass-development-kit-cli-component-list"></a>

Rufen Sie die Liste der verfügbaren Komponentenvorlagen und Community-Komponenten ab.

<a name="gdk-cli-component-templates-community-components"></a>Die GDK CLI ruft Community-Komponenten aus dem [Greengrass-Softwarekatalog](greengrass-software-catalog.md) und Komponentenvorlagen aus dem Component [AWS IoT Greengrass Templates-Repository](https://github.com/aws-greengrass/aws-greengrass-component-templates) ab. GitHub

Sie können die Ausgabe dieses Befehls an den Befehl [init](#greengrass-development-kit-cli-component-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`name-language`. Zum Beispiel ist in `HelloWorld-python` der Vorlagenname `HelloWorld` und die Sprache ist`python`.
+ `-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
```

# config
<a name="greengrass-development-kit-cli-config"></a>

Verwenden Sie den `config` Befehl im AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI), um die Konfiguration für das GDK in der Konfigurationsdatei zu ändern. `gdk-config.json`

**Topics**
+ [update](#greengrass-development-kit-cli-config-update)

## update
<a name="greengrass-development-kit-cli-config-update"></a>

Startet eine interaktive Eingabeaufforderung, um Felder in einer vorhandenen GDK-Konfigurationsdatei zu ändern.

**Syntax**  

```
$ gdk config update
    [--component]
```

**Argumente**  
+ `-c`, `--component` — Um komponentenbezogene Felder in der Datei zu aktualisieren. `gdk-config.json` Dieses Argument ist erforderlich, da es die einzige Option ist.

**Ausgabe**  
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen, um eine Komponente zu konfigurieren.  

```
$ gdk config update --component
Current value of the REQUIRED component_name is (default: com.example.PythonHelloWorld): 
Current value of the REQUIRED author is (default: author): 
Current value of the REQUIRED version is (default: NEXT_PATCH): 
Do you want to change the build configurations? (y/n) 
Do you want to change the publish configurations? (y/n)
[2023-09-26 10:19:48] INFO - Config file has been updated. Exiting...
```

# test-e2e
<a name="greengrass-development-kit-cli-test"></a>

Verwenden Sie den `test-e2e` Befehl im AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI), um end-to-end Testmodule im GDK-Projekt zu initialisieren, zu erstellen und auszuführen.

**Topics**
+ [init](#greengrass-development-kit-cli-test-init)
+ [build](#greengrass-development-kit-cli-test-build)
+ [run](#greengrass-development-kit-cli-test-run)

## init
<a name="greengrass-development-kit-cli-test-init"></a>

Initialisieren Sie ein vorhandenes GDK-CLI-Projekt mit einem Testmodul, das Greengrass Testing Framework (GTF) verwendet.

Standardmäßig ruft GDK CLI die Maven-Modulvorlage aus dem [AWS IoT Greengrass Component Templates-Repository](https://github.com/aws-greengrass/aws-greengrass-component-templates) ab. GitHub Dieses Maven-Modul ist von der JAR-Datei abhängig. `aws-greengrass-testing-standalone`

Dieser Befehl erstellt ein neues Verzeichnis, das `gg-e2e-tests` innerhalb des GDK-Projekts aufgerufen wird. Wenn das Verzeichnis des Testmoduls bereits existiert und nicht leer ist, wird der Befehl beendet, ohne etwas zu tun. Dieser `gg-e2e-tests` Ordner enthält die Cucumber-Funktion und die Schrittdefinitionen, die in einem Maven-Projekt strukturiert sind.

Standardmäßig versucht dieser Befehl, die neueste Release-Version von GTF zu verwenden.

**Syntax**  

```
$ gdk test-e2e init
    [--gtf-version]
```

**Argumente**  
+ `-ov`, `--gtf-version` — (Optional) Die Version der GTF, die mit dem end-to-end Testmodul im GDK-Projekt verwendet werden soll. [Dieser Wert muss eine der GTF-Versionen aus Releases sein.](https://github.com/aws-greengrass/aws-greengrass-testing/releases) Dieses Argument überschreibt die `gtf_version` in der GDK-CLI-Konfiguration.

**Ausgabe**  
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen, um das GDK-Projekt mit dem Testmodul zu initialisieren.  

```
$ gdk test-e2e init
[2023-12-06 12:20:28] INFO - Using the GTF version provided in the GDK test config 1.2.0
[2023-12-06 12:20:28] INFO - Downloading the E2E testing template from GitHub into gg-e2e-tests directory...
```

## build
<a name="greengrass-development-kit-cli-test-build"></a>

**Anmerkung**  
Sie müssen die Komponente erstellen, indem Sie sie ausführen, **gdk component build** bevor Sie das end-to-end Testmodul erstellen.

Erstellen Sie das end-to-end Testmodul. Die GDK-CLI erstellt das Testmodul mit dem Build-System, das Sie in der [GDK-CLI-Konfigurationsdatei](gdk-cli-configuration-file.md) unter der `gdk-config.json` `test-e2e` Eigenschaft angeben. Sie müssen diesen Befehl in demselben Ordner ausführen, in dem sich die `gdk-config.json` Datei befindet.

Standardmäßig verwendet GDK CLI das Maven-Build-System, um das Testmodul zu erstellen. [Maven](https://maven.apache.org/) ist erforderlich, um den Befehl auszuführen. `gdk test-e2e build`

Sie müssen die Komponente erstellen, indem Sie **gdk-component-build** sie vor dem Erstellen des Testmoduls ausführen, wenn die Testfunktionsdateien Variablen wie `GDK_COMPONENT_NAME` und `GDK_COMPONENT_RECIPE_FILE` zum Interpolieren enthalten.

Wenn Sie diesen Befehl ausführen, interpoliert die GDK-CLI alle Variablen aus der GDK-Projektkonfiguration und erstellt das `gg-e2e-tests` Modul, um die endgültige Test-JAR-Datei zu generieren.

**Syntax**  

```
$ gdk test-e2e build
```

**Argumente**  
Keine

**Ausgabe**  
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen.  

```
$ gdk test-e2e build
[2023-07-20 15:36:48] INFO - Updating feature file: file:///path/to//HelloWorld/greengrass-build/gg-e2e-tests/src/main/resources/greengrass/features/component.feature
[2023-07-20 15:36:48] INFO - Creating the E2E testing recipe file:///path/to/HelloWorld/greengrass-build/recipes/e2e_test_recipe.yaml
[2023-07-20 15:36:48] INFO - Building the E2E testing module
[2023-07-20 15:36:48] INFO - Running the build command 'mvn package'
.........
```

## run
<a name="greengrass-development-kit-cli-test-run"></a>

Führen Sie das Testmodul mit den Testoptionen in der GDK-Konfigurationsdatei aus.

**Anmerkung**  
Sie müssen das Testmodul erstellen, indem Sie es ausführen, **gdk test-e2e build** bevor Sie die end-to-end Tests ausführen.

**Syntax**  

```
$ gdk test-e2e run
    [--gtf-options]
```

**Argumente**  
+ `-oo`, `--gtf-options` — (Optional) Geben Sie eine Liste von Optionen für die Ausführung der end-to-end Tests an. Das Argument muss eine gültige JSON-Zeichenfolge oder ein Dateipfad zu einer JSON-Datei sein, die die GTF-Optionen enthält. Die in der Konfigurationsdatei bereitgestellten Optionen werden mit den in den Befehlsargumenten bereitgestellten Optionen zusammengeführt. Wenn eine Option an beiden Stellen vorhanden ist, hat die Option im Argument Vorrang vor der Option aus der Konfigurationsdatei.

  Wenn die `tags` Option in diesem Befehl nicht angegeben ist, verwendet `Sample` GDK die Tags for. Wenn nicht `ggc-archive` angegeben, lädt GDK die neueste Version des Greengrass Nucleus-Archivs herunter.

**Ausgabe**  
Das folgende Beispiel zeigt die Ausgabe, die erzeugt wird, wenn Sie diesen Befehl ausführen.  

```
$ gdk test-e2e run
[2023-07-20 16:35:53] INFO - Downloading latest nucleus archive from url https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-latest.zip
[2023-07-20 16:35:57] INFO - Running test jar with command java -jar /path/to/greengrass-build/gg-e2e-tests/target/uat-features-1.0.0.jar —ggc-archive=/path/to/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip —tags=Sample

16:35:59.693 [] [] [] [INFO] com.aws.greengrass.testing.modules.GreengrassContextModule - Extracting /path/to/workplace/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip into /var/folders/7g/ltzcb_3s77nbtmkzfb6brwv40000gr/T/gg-testing-7718418114158172636/greengrass
16:36:00.534 [gtf-1.1.0-SNAPSHOT] [] [] [INFO] com.aws.greengrass.testing.features.LoggerSteps - GTF Version is gtf-1.1.0-SNAPSHOT
.......
```

# CLI-Konfigurationsdatei für das Greengrass Development Kit
<a name="gdk-cli-configuration-file"></a>

Das AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) liest aus einer Konfigurationsdatei mit dem Namen Komponenten `gdk-config.json` erstellen und veröffentlichen. Diese Konfigurationsdatei muss im Stammverzeichnis des Komponenten-Repositorys vorhanden sein. Sie können den GDK [CLI-Befehl init](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-init) verwenden, um Komponenten-Repositorys mit dieser Konfigurationsdatei zu initialisieren.

**Topics**
+ [GDK CLI-Konfigurationsdateiformat](#gdk-config-format)
+ [Beispiele für GDK-CLI-Konfigurationsdateien](#gdk-config-examples)

## GDK CLI-Konfigurationsdateiformat
<a name="gdk-config-format"></a>

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 [Releases](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/releases) 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:  <a name="gdk-cli-configuration-file-component-version-options"></a>
+ `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 Dienst 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 gesetzt. Wenn Sie die Komponente noch nicht veröffentlicht haben, verwendet die GDK-CLI Version`1.0.0`.

  Wenn Sie diese Option wählen, können Sie die [Greengrass-CLI](greengrass-cli-component.md) 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 ermöglichen, müssen Sie stattdessen eine semantische Version angeben.
+ Eine semantische Version, z. B. **1.0.0** *Semantische Versionen verwenden eine Hauptversion.* *geringfügig*. *Patch-Nummerierungssystem*. Weitere Informationen finden Sie in der [semantischen Versionsspezifikation](https://semver.org/).

  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](greengrass-cli-component.md) zu erstellen.  
`build`  
Die Konfiguration, die verwendet werden soll, um den Quellcode dieser Komponente in Artefakte umzuwandeln. Dieses Objekt enthält die folgenden Informationen:    
  `build_system`   
Das zu verwendende Build-System. Wählen Sie aus den folgenden Optionen aus:  <a name="gdk-cli-configuration-file-component-build-system-options"></a>
+ `zip`— Packt den Ordner der Komponente in eine ZIP-Datei, um ihn als einziges Artefakt der Komponente zu definieren. Wählen Sie diese Option für die folgenden Komponententypen:
  + Komponenten, die interpretierte Programmiersprachen verwenden, wie Python oder 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 Namen`HelloWorld.zip`.
**Anmerkung**  
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 die GDK-CLI den Ordner der Komponente in eine Zip-Datei komprimiert, überspringt sie die folgenden Dateien:
  + Die Datei `gdk-config.json`
  + Die Rezeptdatei (oder) `recipe.json` `recipe.yaml`
  + Erstellen Sie Ordner, wie `greengrass-build`
+ `maven`— Führt den `mvn clean package` Befehl aus, um den Quellcode der Komponente in Artefakte umzuwandeln. Wählen Sie diese Option für Komponenten, die [Maven](https://maven.apache.org/) verwenden, wie 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 den `gradle build` Befehl aus, um den Quellcode der Komponente in Artefakte umzuwandeln. Wählen Sie diese Option für Komponenten, die [Gradle](https://gradle.org/) verwenden. 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 den `gradlew` Befehl aus, um den Quellcode der Komponente in Artefakte umzuwandeln. Wählen Sie diese Option für Komponenten, die den [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html) verwenden.

  Diese Funktion ist für GDK CLI v1.2.0 und höher verfügbar.
+ `custom`— Führt einen benutzerdefinierten Befehl aus, um den Quellcode der Komponente in ein Rezept und Artefakte umzuwandeln. Geben Sie den benutzerdefinierten Befehl im `custom_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 angeben`build_system`.  
Mit diesem Befehl müssen ein Rezept und Artefakte in den folgenden Ordnern innerhalb des Komponentenordners erstellt werden. Die GDK-CLI erstellt diese Ordner für Sie, wenn Sie den [Befehl component build](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-build) ausführen.  
+ Rezeptordner: `greengrass-build/recipes`
+ Ordner „Artefakte“: `greengrass-build/artifacts/componentName/componentVersion`

  *componentName*Ersetzen Sie durch den Komponentennamen und *componentVersion* ersetzen Sie durch die Komponentenversion oder`NEXT_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\$1\$1-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 im [aws.greengrass.labs.LocalWebServer community component nein GitHub](https://github.com/awslabs/aws-greengrass-labs-local-web-server).  
`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 Glob-Mustern, die definieren, welche Dateien beim Erstellen der ZIP-Datei aus dem Komponentenverzeichnis ausgeschlossen werden sollen. Nur gültig, wenn der `build_system` ist`zip`.  
In den GDK CLI-Versionen 1.4.0 und früher wird jede Datei, die einem Eintrag in der Ausnahmeliste entspricht, aus allen Unterverzeichnissen der Komponente ausgeschlossen. Um dasselbe Verhalten in den GDK-CLI-Versionen 1.5.0 und höher `**/` zu erreichen, stellen Sie sie den vorhandenen Einträgen in der Ausschlussliste voran. Schließt beispielsweise `*.txt` Textdateien nur aus dem Verzeichnis aus; schließt Textdateien aus allen `**/*.txt` Verzeichnissen und Unterverzeichnissen aus.  
In den GDK-CLI-Versionen 1.5.0 und höher wird möglicherweise während des Komponenten-Builds eine Warnung angezeigt, wenn dies in der GDK-Konfigurationsdatei definiert `excludes` ist. Um diese Warnung zu deaktivieren, setzen Sie die Umgebungsvariable auf. `GDK_EXCLUDES_WARN_IGNORE` `true`
Die GDK-CLI schließt immer die folgenden Dateien aus der Zip-Datei aus:  
+ Die Datei `gdk-config.json`
+ Die Rezeptdatei (oder) `recipe.json` `recipe.yaml`
+ Erstellen Sie Ordner, wie `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 versteckten Dateien
+ Den Ordner `node_modules`
Wenn Sie die `excludes` Option angeben, schließt die GDK-CLI nur die Dateien aus, die Sie mit der `excludes` Option festgelegt haben. Wenn Sie die `excludes` Option nicht angeben, schließt die GDK-CLI die zuvor angegebenen Standarddateien und -ordner aus.  
`zip_name`  
Der Name der Zip-Datei, die verwendet werden soll, wenn Sie während des Build-Prozesses ein ZIP-Artefakt erstellen. Nur gültig, wenn der `build_system` ist`zip`. Wenn das leer `build_system` ist, wird der Komponentenname für den Namen der Zip-Datei verwendet.  
`publish`  
Die Konfiguration, die verwendet werden soll, um diese Komponente im AWS IoT Greengrass Service zu veröffentlichen.  
<a name="gdk-cli-s3-bucket-name-formation"></a>Wenn Sie GDK CLI v1.1.0 oder höher verwenden, können Sie das `--bucket` Argument angeben, um den S3-Bucket anzugeben, in den die GDK-CLI die Artefakte der Komponente hochlädt. <a name="gdk-cli-s3-bucket-name-formation-format"></a>Wenn Sie dieses Argument nicht angeben, lädt die GDK-CLI in den S3-Bucket hoch, dessen Name`bucket-region-accountId`, wo *bucket* und *region* sind die Werte, in denen Sie angeben`gdk-config.json`, *accountId* ist und der Ihre AWS-Konto ID ist. Die GDK-CLI erstellt den Bucket, falls er nicht existiert.  
Dieses Objekt enthält die folgenden Informationen:    
`bucket`  
Der S3-Bucket-Name, der zum Hosten von Komponentenartefakten verwendet werden soll.  
`region`  
Der AWS-Region Ort, an dem 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 mit Argumenten, 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 [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.S3Transfer.ALLOWED_UPLOAD_ARGS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.S3Transfer.ALLOWED_UPLOAD_ARGS)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 ist`maven`. Wählen Sie aus den folgenden Optionen aus:  
+ `maven`— Führt den `mvn package` Befehl zum Erstellen des Testmoduls aus. Wählen Sie diese Option, um das Testmodul zu erstellen, das [Maven](https://maven.apache.org/) verwendet.
+ `gradle`— Führt den `gradle build` Befehl zum Erstellen des Testmoduls aus. Wählen Sie diese Option für das Testmodul, das [Gradle](https://gradle.org/) verwendet.   
`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. [Bei diesem Wert muss es sich um eine der GTF-Versionen aus Releases handeln.](https://github.com/aws-greengrass/aws-greengrass-testing/releases) Die Standardeinstellung ist GTF-Version 1.1.0.  
`gtf_options`  
(Optional) Zusätzliche Konfigurationsoptionen, die beim end-to-end Testen der Komponente verwendet wurden.  
<a name="gtf_options"></a>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 spezifische regionale Endpunkte für AWS Dienste ab. Standardmäßig wird das verwendet, was das AWS SDK entdeckt.
+ `credentials-path`— Optionaler Pfad für die AWS Profilanmeldedaten. Standardmäßig werden Anmeldeinformationen verwendet, die in der Host-Umgebung gefunden wurden.
+ `credentials-path-rotation`— Optionale Rotationsdauer für AWS Anmeldeinformationen. Der Standardwert ist 15 Minuten oder`PT15M`.
+ `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 aktiviert.
+ `env-stage`— Zielt auf die Bereitstellungsumgebung von Greengrass ab. Standardmäßig auf Produktion eingestellt.
+ `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 mit zusätzlichen Funktionsdateien. Standardmäßig werden keine zusätzlichen Featuredateien verwendet.
+ `gg-cli-version`— Überschreibt die Version der Greengrass-CLI. Standardmäßig wird der Wert verwendet, der in gefunden wurde. `ggc.version`
+ `gg-component-bucket`— Der Name eines vorhandenen Amazon S3 S3-Buckets, der Greengrass-Komponenten enthält.
+ `gg-component-overrides`— Eine Liste von Greengrass-Komponenten-Overrides.
+ `gg-persist`— Eine Liste von Testelementen, die nach einem Testlauf beibehalten werden sollen. Das Standardverhalten besteht darin, nichts beizubehalten. Zulässige Werte sind: `aws.resources``installed.software`, und`generated.files`.
+ `gg-runtime`— Eine Liste von Werten, die beeinflussen sollen, wie der Test mit den Testressourcen interagiert. Diese Werte haben Vorrang vor dem Parameter. `gg.persist` Wenn der Standardwert leer ist, wird davon ausgegangen, dass alle Testressourcen nach Testfällen verwaltet werden, einschließlich der installierten Greengrass-Runtime. Zulässige Werte sind: `aws.resources``installed.software`, und. `generated.files`
+ `ggc-archive`— Der Pfad zur archivierten Greengrass-Kernkomponente.
+ `ggc-install-root`— Verzeichnis zur Installation der Greengrass Nucleus-Komponente. Standardmäßig ist dies der Ordner test.temp.path und der Testrun-Ordner.
+ `ggc-log-level`— Stellen Sie den Greengrass Nucleus Log Level für den Testlauf ein. Die Standardeinstellung ist „INFO“.
+ `ggc-tes-rolename`— Die IAM-Rolle, die AWS IoT Greengrass Core für den Zugriff auf AWS Dienste übernehmen wird. Wenn eine Rolle mit dem angegebenen Namen nicht existiert, wird eine erstellt und es wird eine Standardzugriffsrichtlinie festgelegt.
+ `ggc-trusted-plugins`— Die durch Kommas getrennte Liste der Pfade (auf dem Host) der vertrauenswürdigen Plugins, die zu Greengrass hinzugefügt werden müssen. Um den Pfad auf dem DUT selbst anzugeben, stellen Sie dem Pfad „dut:“ voran
+ `ggc-user-name`— Der posixUser-Wert user:group für den Greengrass-Kern. Standardmäßig wird der aktuelle Benutzername verwendet, der angemeldet ist.
+ `ggc-version`— Überschreibt die Version der laufenden Greengrass Nucleus-Komponente. Standardmäßig wird der in ggc.archive gefundene Wert verwendet.
+ `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 Verkehr über diese URL weitergeleitet wird.
+ `tags`— Nur Feature-Tags ausführen. Kann mit '&' überschnitten werden
+ `test-id-prefix`— Ein gemeinsames Präfix, das auf alle testspezifischen Ressourcen angewendet wird, einschließlich AWS Ressourcennamen und Tags. Die Standardeinstellung ist ein „gg“ -Präfix.
+ `test-log-path`— Verzeichnis, das die Ergebnisse des gesamten Testlaufs enthalten wird. Der Standardwert ist „TestResults“.
+ `test-results-json`— Markierung, um festzustellen, ob ein resultierender Cucumber-JSON-Bericht generiert und auf die Festplatte geschrieben wird. Standardwert ist „true“.
+ `test-results-log`— Markierung, um festzustellen, ob die Konsolenausgabe generiert und auf die Festplatte geschrieben wird. Standardwert "false".
+ `test-results-xml`— Markierung, um festzustellen, ob ein JUnit resultierender XML-Bericht generiert und auf die Festplatte geschrieben wird. Standardwert ist „true“.
+ `test-temp-path`— Verzeichnis zum Generieren lokaler Testartefakte. Standardmäßig wird ein zufälliges temporäres Verzeichnis mit dem Präfix gg-testing verwendet.
+ `timeout-multiplier`— Für alle Test-Timeouts wird ein Multiplikator bereitgestellt. Standard = 1.0.

## Beispiele für GDK-CLI-Konfigurationsdateien
<a name="gdk-config-examples"></a>

Sie können auf die folgenden Beispiele für GDK-CLI-Konfigurationsdateien verweisen, um Ihnen bei der Konfiguration von Greengrass-Komponentenumgebungen zu helfen.

### Hallo Welt (Python)
<a name="gdk-config-example-hello-world-python"></a>

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 packen, 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)
<a name="gdk-config-example-hello-world-java"></a>

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 packen, 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
<a name="gdk-config-community-component-examples"></a>

Mehrere Community-Komponenten im [Greengrass Software Catalog](greengrass-software-catalog.md) verwenden die GDK-CLI. Sie können die GDK-CLI-Konfigurationsdateien in den Repositorys dieser Komponenten durchsuchen.

**Um die GDK-CLI-Konfigurationsdateien von Community-Komponenten anzuzeigen**

1. 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
   ```

1. Öffnen Sie das GitHub Repository einer Community-Komponente unter der folgenden URL. *community-component-name*Ersetzen Sie es durch den Namen einer Community-Komponente aus dem vorherigen Schritt.

   ```
   https://github.com/awslabs/community-component-name
   ```