

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.

# Führen Sie die AWS IoT Greengrass Core-Software in einem Docker-Container aus
<a name="run-greengrass-docker"></a>

AWS IoT Greengrass kann für die Ausführung in einem Docker-Container konfiguriert werden. Docker ist eine Plattform, die Ihnen die Tools zum Erstellen, Ausführen, Testen und Bereitstellen von Anwendungen zur Verfügung stellt, die auf Linux-Containern basieren. Wenn Sie ein AWS IoT Greengrass Docker-Image ausführen, können Sie wählen, ob Sie Ihre AWS Anmeldeinformationen für den Docker-Container angeben und dem AWS IoT Greengrass Core-Softwareinstaller erlauben möchten, automatisch die AWS Ressourcen bereitzustellen, die ein Greengrass-Core-Gerät für den Betrieb benötigt. Wenn Sie keine AWS Anmeldeinformationen angeben möchten, können Sie AWS Ressourcen manuell bereitstellen und die AWS IoT Greengrass Core-Software im Docker-Container ausführen.

**Topics**
+ [Unterstützte Plattformen und Anforderungen](#greengrass-docker-supported-platforms)
+ [Software wird heruntergeladen](#greengrass-docker-downloads)
+ [Wählen Sie aus, wie Ressourcen bereitgestellt werden AWS](#greengrass-docker-resource-provisioning)
+ [Erstellen Sie das AWS IoT Greengrass Image aus einem Dockerfile](build-greengrass-dockerfile.md)
+ [AWS IoT Greengrass In Docker mit automatischer Bereitstellung ausführen](run-greengrass-docker-automatic-provisioning.md)
+ [AWS IoT Greengrass In Docker mit manueller Bereitstellung ausführen](run-greengrass-docker-manual-provisioning.md)
+ [Fehlerbehebung AWS IoT Greengrass in einem Docker-Container](docker-troubleshooting.md)

## Unterstützte Plattformen und Anforderungen
<a name="greengrass-docker-supported-platforms"></a>

Hostcomputer müssen die folgenden Mindestanforderungen erfüllen, um die AWS IoT Greengrass Core-Software in einem Docker-Container zu installieren und auszuführen:
+ <a name="docker-host-reqs"></a>Ein Linux-basiertes Betriebssystem mit einer Internetverbindung.
+ <a name="docker-engine-reqs"></a>[Docker Engine](https://docs.docker.com/engine/install/) Version 18.09 oder höher.
+ <a name="docker-compose-reqs"></a>(Optional) [Docker Compose](https://docs.docker.com/compose/install/) Version 1.22 oder höher. Docker Compose ist nur erforderlich, wenn Sie die Docker Compose-CLI zum Ausführen Ihrer Docker-Images verwenden möchten.

Um Lambda-Funktionskomponenten innerhalb des Docker-Containers auszuführen, müssen Sie den Container so konfigurieren, dass er zusätzliche Anforderungen erfüllt. Weitere Informationen finden Sie unter [Anforderungen an die Lambda-Funktion](setting-up.md#greengrass-v2-lambda-requirements).

### Komponenten im Prozessmodus ausführen
<a name="docker-container-mode-limitation"></a>

AWS IoT Greengrass unterstützt nicht die Ausführung von Lambda-Funktionen oder AWS-bereitgestellten Komponenten in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Docker-Containers. Sie müssen diese Komponenten im Prozessmodus ohne jegliche Isolierung ausführen.

Wenn Sie eine Lambda-Funktionskomponente konfigurieren, setzen Sie den Isolationsmodus auf **Kein Container**. Weitere Informationen finden Sie unter [AWS Lambda Funktionen ausführen](run-lambda-functions.md). 

Wenn Sie eine der folgenden Komponenten AWS bereitstellen, aktualisieren Sie die Konfiguration für jede Komponente, auf die der `containerMode` Parameter gesetzt werden soll. `NoContainer` Weitere Informationen zu Konfigurationsupdates finden Sie unter[Komponentenkonfigurationen aktualisieren](update-component-configurations.md).
+ [CloudWatch Metriken](cloudwatch-metrics-component.md)
+ [Device Defender](device-defender-component.md)
+ [Firehose](kinesis-firehose-component.md)
+ [Modbus-RTU-Protokolladapter](modbus-rtu-protocol-adapter-component.md)
+ [Amazon SNS](sns-component.md)

## AWS IoT Greengrass Docker-Software wird heruntergeladen
<a name="greengrass-docker-downloads"></a>

AWS IoT Greengrass stellt ein Dockerfile bereit, um ein Container-Image zu erstellen, auf dem AWS IoT Greengrass Core-Software und Abhängigkeiten auf einem Amazon Linux 2 (x86\$164) -Basis-Image installiert sind. Sie können das Basis-Image im Dockerfile so ändern, dass es auf einer anderen Plattformarchitektur ausgeführt wird. AWS IoT Greengrass 

Laden Sie das Dockerfile-Paket von herunter. [GitHub](https://github.com/aws-greengrass/aws-greengrass-docker)

Das Dockerfile verwendet eine ältere Version von Greengrass. Sie sollten die Datei aktualisieren, um die gewünschte Version von Greengrass zu verwenden. Informationen zum Erstellen des AWS IoT Greengrass Container-Images aus dem Dockerfile finden Sie unter. [Erstellen Sie das AWS IoT Greengrass Container-Image aus einem Dockerfile](build-greengrass-dockerfile.md)

## Wählen Sie aus, wie Ressourcen bereitgestellt werden AWS
<a name="greengrass-docker-resource-provisioning"></a>

Wenn Sie die AWS IoT Greengrass Core-Software in einem Docker-Container installieren, können Sie wählen, ob Sie die AWS Ressourcen, die ein Greengrass-Core-Gerät für den Betrieb benötigt, automatisch bereitstellen oder Ressourcen verwenden möchten, die Sie manuell bereitstellen.
+ **Automatische Ressourcenbereitstellung** — Das Installationsprogramm stellt das AWS IoT AWS IoT Ding, die Dinggruppe, die AWS IoT IAM-Rolle und den Rollenalias bereit, wenn Sie das AWS IoT Greengrass Container-Image zum ersten Mal ausführen. Das Installationsprogramm kann auch die lokalen Entwicklungstools auf dem Kerngerät bereitstellen, sodass Sie das Gerät verwenden können, um benutzerdefinierte Softwarekomponenten zu entwickeln und zu testen. Um diese Ressourcen automatisch bereitzustellen, müssen Sie AWS Anmeldeinformationen als Umgebungsvariablen für das Docker-Image angeben.

  Um die automatische Bereitstellung zu verwenden, müssen Sie die Docker-Umgebungsvariable festlegen `PROVISION=true` und eine Anmeldeinformationsdatei bereitstellen, um Ihre AWS Anmeldeinformationen für den Container bereitzustellen.
+ **Manuelle Ressourcenbereitstellung** — Wenn Sie keine AWS Anmeldeinformationen für den Container bereitstellen möchten, können Sie die AWS Ressourcen manuell bereitstellen, bevor Sie das Container-Image ausführen. AWS IoT Greengrass Sie müssen eine Konfigurationsdatei erstellen, um Informationen zu diesen Ressourcen für das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container bereitzustellen.

  Um die manuelle Bereitstellung zu verwenden, müssen Sie die Docker-Umgebungsvariable festlegen. `PROVISION=false` Manuelles Provisioning ist die Standardoption.

Weitere Informationen finden Sie unter [Erstellen Sie das AWS IoT Greengrass Container-Image aus einem Dockerfile](build-greengrass-dockerfile.md).

# Erstellen Sie das AWS IoT Greengrass Container-Image aus einem Dockerfile
<a name="build-greengrass-dockerfile"></a>

AWS stellt ein Dockerfile bereit, das Sie herunterladen und verwenden können, um die AWS IoT Greengrass Core-Software in einem Docker-Container auszuführen. Dockerfiles enthalten Quellcode zum Erstellen von Container-Images. AWS IoT Greengrass 

Bevor Sie ein AWS IoT Greengrass Container-Image erstellen, müssen Sie Ihr Dockerfile so konfigurieren, dass es die Version der AWS IoT Greengrass Core-Software auswählt, die Sie installieren möchten. Sie können auch Umgebungsvariablen konfigurieren, um festzulegen, wie Ressourcen während der Installation bereitgestellt werden, und andere Installationsoptionen anpassen. In diesem Abschnitt wird beschrieben, wie Sie ein AWS IoT Greengrass Docker-Image aus einer Docker-Datei konfigurieren und erstellen. 



## Laden Sie das Dockerfile-Paket herunter
<a name="download-dockerfile-package"></a>

Sie können das AWS IoT Greengrass Dockerfile-Paket herunterladen von: GitHub

[AWS Greengrass Docker-Repository](https://github.com/aws-greengrass/aws-greengrass-docker)

Nachdem Sie das Paket heruntergeladen haben, extrahieren Sie den Inhalt in den `download-directory/aws-greengrass-docker-nucleus-version` Ordner auf Ihrem Computer. Das Dockerfile verwendet eine ältere Version von Greengrass. Sie sollten die Datei aktualisieren, um die gewünschte Version von Greengrass zu verwenden.

## Geben Sie die AWS IoT Greengrass Core-Softwareversion an
<a name="set-dockerfile-build-argument"></a>

Verwenden Sie das folgende Build-Argument in der Docker-Datei, um die Version der AWS IoT Greengrass Core-Software anzugeben, die Sie im AWS IoT Greengrass Docker-Image verwenden möchten. Standardmäßig verwendet das Dockerfile die neueste Version der Core-Software. AWS IoT Greengrass 

`GREENGRASS_RELEASE_VERSION`  
Die Version der AWS IoT Greengrass Core-Software. Standardmäßig lädt das Dockerfile die neueste verfügbare Version des Greengrass-Nukleus herunter. Stellen Sie den Wert auf die Version des Nucleus ein, den Sie herunterladen möchten.

## Festlegen von Umgebungsvariablen
<a name="set-dockerfile-environment-variables"></a>

Mit Umgebungsvariablen können Sie anpassen, wie die AWS IoT Greengrass Core-Software im Docker-Container installiert wird. Sie können Umgebungsvariablen für Ihr AWS IoT Greengrass Docker-Image auf verschiedene Arten festlegen. 
+ Um dieselben Umgebungsvariablen zum Erstellen mehrerer Images zu verwenden, legen Sie Umgebungsvariablen direkt im Dockerfile fest.
+ Wenn Sie Ihren Container `docker run` zum Starten verwenden, übergeben Sie Umgebungsvariablen als Argumente im Befehl oder legen Sie Umgebungsvariablen in einer Umgebungsvariablendatei fest und übergeben Sie dann die Datei als Argument. Weitere Informationen zum Setzen von Umgebungsvariablen in Docker finden Sie in den [Umgebungsvariablen](https://docs.docker.com/engine/reference/commandline/run/#env) in der Docker-Dokumentation.
+ Wenn Sie Ihren Container `docker-compose up` zum Starten verwenden, legen Sie Umgebungsvariablen in einer Umgebungsvariablendatei fest und übergeben Sie die Datei dann als Argument. Weitere Informationen zum Setzen von Umgebungsvariablen in Compose finden Sie in der [Docker-Dokumentation](https://docs.docker.com/compose/environment-variables/).

Sie können die folgenden Umgebungsvariablen für das AWS IoT Greengrass Docker-Image konfigurieren.

**Anmerkung**  
Ändern Sie die `TINI_KILL_PROCESS_GROUP` Variable im Dockerfile nicht. Diese Variable ermöglicht die Weiterleitung `SIGTERM` PIDs an alle Mitglieder der PID-Gruppe, sodass die AWS IoT Greengrass Core-Software korrekt heruntergefahren werden kann, wenn der Docker-Container gestoppt wird.

`GGC_ROOT_PATH`  
(Optional) Der Pfad zu dem Ordner innerhalb des Containers, der als Stammverzeichnis für die AWS IoT Greengrass Core-Software verwendet werden soll.  
Standard: `/greengrass/v2`

`PROVISION`  
(Optional) Legt fest, ob der AWS IoT Greengrass Core AWS Ressourcen bereitstellt.   
+ Wenn Sie dies angeben`true`, registriert die AWS IoT Greengrass Core-Software das Container-Image als eine AWS IoT Sache und stellt die AWS Ressourcen bereit, die das Greengrass-Core-Gerät benötigt. Die AWS IoT Greengrass Core-Software stellt ein AWS IoT Ding, (optional) eine AWS IoT Dinggruppe, eine IAM-Rolle und einen AWS IoT Rollenalias bereit. Weitere Informationen finden Sie unter [AWS IoT Greengrass In einem Docker-Container mit automatischer Ressourcenbereitstellung ausführen](run-greengrass-docker-automatic-provisioning.md).
+ Wenn Sie dies angeben`false`, müssen Sie eine Konfigurationsdatei erstellen, die Sie dem AWS IoT Greengrass Core-Installationsprogramm zur Verfügung stellen, in der angegeben ist, dass die AWS Ressourcen und Zertifikate verwendet werden sollen, die Sie manuell erstellt haben. Weitere Informationen finden Sie unter [AWS IoT Greengrass In einem Docker-Container mit manueller Ressourcenbereitstellung ausführen](run-greengrass-docker-manual-provisioning.md).
Standard: `false`

`AWS_REGION`  
(Optional) Die AWS-Region , die die AWS IoT Greengrass Core-Software verwendet, um die erforderlichen AWS Ressourcen abzurufen oder zu erstellen.   
Standard: `us-east-1`.

`THING_NAME`  
(Optional) Der Name des Geräts AWS IoT , das Sie als dieses Core-Gerät registrieren. Wenn das Ding mit diesem Namen in Ihrem nicht existiert AWS-Konto, wird es von der AWS IoT Greengrass Core-Software erstellt.   
Sie müssen angeben`PROVISION=true`, ob dieses Argument angewendet werden soll.  
Standard: `GreengrassV2IotThing_` plus eine zufällige UUID.

`THING_GROUP_NAME`  
(Optional) Der Name der Dinggruppe AWS IoT , der Sie dieses Kerngerät hinzufügen. AWS IoT Wenn eine Bereitstellung auf diese Dinggruppe abzielt, erhalten dieses und andere Kerngeräte in dieser Gruppe diese Bereitstellung, wenn eine Verbindung hergestellt wird. AWS IoT Greengrass Wenn die Dinggruppe mit diesem Namen in Ihrer nicht existiert AWS-Konto, wird sie von der AWS IoT Greengrass Core-Software erstellt.  
Sie müssen angeben`PROVISION=true`, ob dieses Argument angewendet werden soll.

`TES_ROLE_NAME`  
(Optional) Der Name der IAM-Rolle, die zum Abrufen von AWS Anmeldeinformationen verwendet werden soll, die es dem Greengrass-Core-Gerät ermöglichen, mit AWS Diensten zu interagieren. Wenn die Rolle mit diesem Namen in Ihrer nicht vorhanden ist AWS-Konto, erstellt die AWS IoT Greengrass Core-Software sie anhand der `GreengrassV2TokenExchangeRoleAccess` Richtlinie. Diese Rolle hat keinen Zugriff auf Ihre S3-Buckets, in denen Sie Komponentenartefakte hosten. Daher müssen Sie den S3-Buckets und Objekten Ihrer Artefakte Berechtigungen hinzufügen, wenn Sie eine Komponente erstellen. Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).  
Standard: `GreengrassV2TokenExchangeRole`

`TES_ROLE_ALIAS_NAME`  
(Optional) Der Name des AWS IoT Rollenalias, der auf die IAM-Rolle verweist, die AWS Anmeldeinformationen für das Greengrass-Core-Gerät bereitstellt. Wenn der Rollenalias mit diesem Namen in Ihrem nicht vorhanden ist AWS-Konto, erstellt ihn die AWS IoT Greengrass Core-Software und verweist ihn auf die von Ihnen angegebene IAM-Rolle.  
Standard: `GreengrassV2TokenExchangeRoleAlias`

`COMPONENT_DEFAULT_USER`  
(Optional) Der Name oder die ID des Systembenutzers und der Gruppe, die die AWS IoT Greengrass Core-Software zum Ausführen von Komponenten verwendet. Geben Sie den Benutzer und die Gruppe an, getrennt durch einen Doppelpunkt. Die Gruppe ist optional. Sie können beispielsweise **ggc\$1user:ggc\$1group** oder **ggc\$1user** angeben.  
+ Wenn Sie als Root ausführen, werden standardmäßig der Benutzer und die Gruppe verwendet, die in der Konfigurationsdatei definiert sind. Wenn die Konfigurationsdatei keinen Benutzer und keine Gruppe definiert, ist dies standardmäßig. `ggc_user:ggc_group` Wenn sie existieren `ggc_user` oder `ggc_group` nicht, erstellt die Software sie.
+ Wenn Sie die Software als Nicht-Root-Benutzer ausführen, verwendet die AWS IoT Greengrass Core-Software diesen Benutzer, um Komponenten auszuführen.
+ Wenn Sie keine Gruppe angeben, verwendet die AWS IoT Greengrass Core-Software die primäre Gruppe des Systembenutzers.
Weitere Informationen finden Sie unter [Konfigurieren Sie den Benutzer, der die Komponenten ausführt](configure-greengrass-core-v2.md#configure-component-user).

`DEPLOY_DEV_TOOLS`  
Definiert, ob die [Greengrass-CLI-Komponente](greengrass-cli-component.md) im Container-Image heruntergeladen und bereitgestellt werden soll. Sie können die Greengrass-CLI verwenden, um Komponenten lokal zu entwickeln und zu debuggen.  
 <a name="local-dev-tools-production-environment-warning"></a>Wir empfehlen, diese Komponente nur in Entwicklungsumgebungen zu verwenden, nicht in Produktionsumgebungen. Diese Komponente bietet Zugriff auf Informationen und Operationen, die Sie in einer Produktionsumgebung normalerweise nicht benötigen. Folgen Sie dem Prinzip der geringsten Rechte, indem Sie diese Komponente nur dort einsetzen, wo Sie sie benötigen. 
Standard: `false`

`INIT_CONFIG`  
(Optional) Der Pfad zur Konfigurationsdatei, die für die Installation der AWS IoT Greengrass Core-Software verwendet werden soll. Sie können diese Option verwenden, um beispielsweise neue Greengrass Core-Geräte mit einer bestimmten Nucleus-Konfiguration einzurichten oder um manuell bereitgestellte Ressourcen anzugeben. Sie müssen Ihre Konfigurationsdatei in den Pfad einhängen, den Sie in diesem Argument angeben. 

`TRUSTED_PLUGIN`  
Diese Funktion ist für Version 2.4.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar.  
(Optional) Der Pfad zu einer JAR-Datei, die als vertrauenswürdiges Plugin geladen werden soll. Verwenden Sie diese Option, um JAR-Dateien für das Provisioning-Plugin bereitzustellen, z. B. um sie zusammen mit der [Flottenbereitstellung oder der [benutzerdefinierten](custom-provisioning.md) Bereitstellung](fleet-provisioning.md) zu installieren. 

`THING_POLICY_NAME`  
Diese Funktion ist für Version 2.4.0 und höher der [Greengrass](greengrass-nucleus-component.md) Nucleus-Komponente verfügbar.  
(Optional) Der Name der AWS IoT Richtlinie, die an das Ding-Zertifikat dieses Kerngeräts angehängt werden soll. AWS IoT Wenn die AWS IoT Richtlinie mit diesem Namen in Ihrem System nicht vorhanden ist, wird sie von AWS-Konto der AWS IoT Greengrass Core-Software erstellt.   
Sie müssen angeben`PROVISION=true`, ob dieses Argument angewendet werden soll.  
Die AWS IoT Greengrass Core-Software erstellt standardmäßig eine permissive AWS IoT Richtlinie. Sie können den Geltungsbereich dieser Richtlinie einschränken oder eine benutzerdefinierte Richtlinie erstellen, mit der Sie die Berechtigungen für Ihren Anwendungsfall einschränken. Weitere Informationen finden Sie unter [Minimale AWS IoT Richtlinie für AWS IoT Greengrass V2 Kerngeräte](device-auth.md#greengrass-core-minimal-iot-policy). 

## Geben Sie die zu installierenden Abhängigkeiten an
<a name="dockerfile-run-instruction"></a>

Die RUN-Anweisung im AWS IoT Greengrass Dockerfile bereitet die Containerumgebung für die Ausführung des AWS IoT Greengrass Core-Softwareinstallers vor. Sie können die Abhängigkeiten anpassen, die installiert werden, bevor das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container ausgeführt wird. 

## Erstellen Sie das Image AWS IoT Greengrass
<a name="build-greengrass-docker-image"></a>

Verwenden Sie das AWS IoT Greengrass Dockerfile, um ein AWS IoT Greengrass Container-Image zu erstellen. Sie können die Docker-CLI oder die Docker Compose-CLI verwenden, um das Image zu erstellen und den Container zu starten. Sie können das Image auch mit der Docker-CLI erstellen und dann Docker Compose verwenden, um Ihren Container von diesem Image aus zu starten.

------
#### [ Docker ]

1. Führen Sie auf dem Host-Computer den folgenden Befehl aus, um zu dem Verzeichnis zu wechseln, das das konfigurierte Dockerfile enthält.

   ```
   cd download-directory/aws-greengrass-docker-nucleus-version
   ```

1. Führen Sie den folgenden Befehl aus, um das AWS IoT Greengrass Container-Image aus dem Dockerfile zu erstellen.

   ```
   sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
   ```

------
#### [ Docker Compose ]

1. Führen Sie auf dem Hostcomputer den folgenden Befehl aus, um zu dem Verzeichnis zu wechseln, das die Dockerfile- und die Compose-Datei enthält.

   ```
   cd download-directory/aws-greengrass-docker-nucleus-version
   ```

1. Führen Sie den folgenden Befehl aus, um die Compose-Datei zum Erstellen des AWS IoT Greengrass Container-Images zu verwenden.

   ```
   docker-compose -f docker-compose.yml build
   ```

------

Sie haben das AWS IoT Greengrass Container-Image erfolgreich erstellt. Auf dem Docker-Image ist die AWS IoT Greengrass Core-Software installiert. Sie können die AWS IoT Greengrass Core-Software jetzt in einem Docker-Container ausführen.

# AWS IoT Greengrass In einem Docker-Container mit automatischer Ressourcenbereitstellung ausführen
<a name="run-greengrass-docker-automatic-provisioning"></a>

Dieses Tutorial zeigt Ihnen, wie Sie die AWS IoT Greengrass Core-Software in einem Docker-Container mit automatisch bereitgestellten AWS Ressourcen und lokalen Entwicklungstools installieren und ausführen. Sie können diese Entwicklungsumgebung verwenden, um AWS IoT Greengrass Funktionen in einem Docker-Container zu erkunden. Die Software benötigt AWS Anmeldeinformationen, um diese Ressourcen bereitzustellen und die lokalen Entwicklungstools bereitzustellen.

Wenn Sie keine AWS Anmeldeinformationen für den Container angeben können, können Sie die AWS Ressourcen bereitstellen, die das Kerngerät für den Betrieb benötigt. Sie können die Entwicklungstools auch auf einem Kerngerät bereitstellen, um es als Entwicklungsgerät zu verwenden. Auf diese Weise können Sie dem Gerät weniger Berechtigungen gewähren, wenn Sie den Container ausführen. Weitere Informationen finden Sie unter [AWS IoT Greengrass In einem Docker-Container mit manueller Ressourcenbereitstellung ausführen](run-greengrass-docker-manual-provisioning.md).



## Voraussetzungen
<a name="docker-automatic-provisioning-prereqs"></a>

Um dieses Tutorial abzuschließen, 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 AWS IAM-Benutzer mit Berechtigungen zur Bereitstellung der AWS IoT und der IAM-Ressourcen für ein Greengrass-Core-Gerät. Das AWS IoT Greengrass Core-Softwareinstallationsprogramm verwendet Ihre AWS Anmeldeinformationen, um diese Ressourcen automatisch bereitzustellen. Informationen zur IAM-Mindestrichtlinie für die automatische Bereitstellung von Ressourcen finden Sie unter[Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen](provision-minimal-iam-policy.md).
+ Ein AWS IoT Greengrass Docker-Image. Sie können [ein Image aus dem AWS IoT Greengrass Dockerfile erstellen](build-greengrass-dockerfile.md).
+ Der Host-Computer, auf dem Sie den Docker-Container ausführen, muss die folgenden Anforderungen erfüllen:
  + <a name="docker-host-reqs"></a>Ein Linux-basiertes Betriebssystem mit einer Internetverbindung.
  + <a name="docker-engine-reqs"></a>[Docker Engine](https://docs.docker.com/engine/install/) Version 18.09 oder höher.
  + <a name="docker-compose-reqs"></a>(Optional) [Docker Compose](https://docs.docker.com/compose/install/) Version 1.22 oder höher. Docker Compose ist nur erforderlich, wenn Sie die Docker Compose-CLI zum Ausführen Ihrer Docker-Images verwenden möchten.

## Konfigurieren Sie Ihre Anmeldedaten AWS
<a name="configure-aws-credentials-for-docker"></a>

In diesem Schritt erstellen Sie eine Anmeldeinformationsdatei auf dem Host-Computer, die Ihre AWS Sicherheitsanmeldeinformationen enthält. Wenn Sie das AWS IoT Greengrass Docker-Image ausführen, müssen Sie den Ordner, der diese Anmeldeinformationsdatei enthält, `/root/.aws/` im Docker-Container bereitstellen. Das AWS IoT Greengrass Installationsprogramm verwendet diese Anmeldeinformationen, um Ressourcen in Ihrem bereitzustellen. AWS-Konto Informationen zu den minimalen IAM-Richtlinien, die das Installationsprogramm für die automatische Bereitstellung von Ressourcen benötigt, finden Sie unter[Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen](provision-minimal-iam-policy.md).

1. Rufen Sie eine der folgenden Optionen ab.
   + Langfristige Anmeldeinformationen für einen IAM-Benutzer. Informationen zum Abrufen langfristiger Anmeldeinformationen finden Sie unter [Verwaltung von Zugriffsschlüsseln für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) im *IAM-Benutzerhandbuch*.
   + (Empfohlen) Temporäre Anmeldeinformationen für eine IAM-Rolle. Informationen zum Abrufen temporärer Anmeldeinformationen finden Sie unter [Verwenden temporärer Sicherheitsanmeldedaten mit dem AWS CLI](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-cli) im *IAM-Benutzerhandbuch*.

1. Erstellen Sie einen Ordner, in dem Sie Ihre Anmeldeinformationsdatei ablegen.

   ```
   mkdir ./greengrass-v2-credentials
   ```

1. Verwenden Sie einen Texteditor, um eine Konfigurationsdatei mit dem Namen `credentials` des `./greengrass-v2-credentials` Ordners zu erstellen.

   Sie können beispielsweise den folgenden Befehl ausführen, um GNU Nano zum Erstellen der `credentials` Datei zu verwenden. 

   ```
   nano ./greengrass-v2-credentials/credentials
   ```

1. Fügen Sie der `credentials` Datei Ihre AWS Anmeldeinformationen im folgenden Format hinzu.

   ```
   [default]
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token = AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
   ```

   Nur `aws_session_token` für temporäre Anmeldeinformationen einbeziehen.

**Wichtig**  
Entfernen Sie die Anmeldeinformationsdatei vom Host-Computer, nachdem Sie den AWS IoT Greengrass Container gestartet haben. Wenn Sie die Anmeldeinformationsdatei nicht entfernen, bleiben Ihre AWS Anmeldeinformationen im Container gespeichert. Weitere Informationen finden Sie unter [Führen Sie die AWS IoT Greengrass Core-Software in einem Container aus](#run-greengrass-image-automatic-provisioning).

## Erstellen Sie eine Umgebungsdatei
<a name="create-env-file-automatic-provisioning"></a>

In diesem Tutorial werden mithilfe einer Umgebungsdatei die Umgebungsvariablen festgelegt, die an das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container übergeben werden. Sie können auch [das `--env` Argument `-e` oder](https://docs.docker.com/engine/reference/commandline/run/#env) in Ihrem `docker run` Befehl verwenden, um Umgebungsvariablen im Docker-Container festzulegen, oder Sie können die Variablen in [einem `environment` Block](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) in der `docker-compose.yml` Datei festlegen.

1. Verwenden Sie einen Texteditor, um eine Umgebungsdatei mit dem Namen `.env` zu erstellen.

   Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um mithilfe von GNU Nano die Datei `.env` im aktuellen Verzeichnis zu erstellen.

   ```
   nano .env
   ```

1. Kopieren Sie den folgenden Inhalt in die Datei.

   ```
   GGC_ROOT_PATH=/greengrass/v2
   AWS_REGION=region
   PROVISION=true
   THING_NAME=MyGreengrassCore
   THING_GROUP_NAME=MyGreengrassCoreGroup
   TES_ROLE_NAME=GreengrassV2TokenExchangeRole
   TES_ROLE_ALIAS_NAME=GreengrassCoreTokenExchangeRoleAlias
   COMPONENT_DEFAULT_USER=ggc_user:ggc_group
   ```

   Ersetzen Sie dann die folgenden Werte.
   + `/greengrass/v2`. Der Greengrass-Stammordner, den Sie für die Installation verwenden möchten. Sie verwenden die `GGC_ROOT` Umgebungsvariable, um diesen Wert festzulegen.
   + *region*. Der AWS-Region Ort, an dem Sie die Ressourcen erstellt haben.
   + *MyGreengrassCore*. Der Name der AWS IoT Sache. Wenn das Ding nicht existiert, erstellt es das Installationsprogramm. Das Installationsprogramm lädt die Zertifikate herunter, um sich als das AWS IoT Ding zu authentifizieren. 
   + *MyGreengrassCoreGroup*. Der Name der AWS IoT Dinggruppe. Wenn die Dinggruppe nicht existiert, erstellt das Installationsprogramm sie und fügt ihr das Ding hinzu. Wenn die Dinggruppe vorhanden ist und über eine aktive Bereitstellung verfügt, lädt das Kerngerät die in der Bereitstellung angegebene Software herunter und führt sie aus.
   +  *GreengrassV2TokenExchangeRole*. Ersetzen Sie durch den Namen der IAM-Token-Austauschrolle, die es dem Greengrass-Core-Gerät ermöglicht, temporäre AWS Anmeldeinformationen abzurufen. Wenn die Rolle nicht existiert, erstellt das Installationsprogramm sie und erstellt eine Richtlinie mit dem Namen Access und fügt sie an. *GreengrassV2TokenExchangeRole* Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).
   + *GreengrassCoreTokenExchangeRoleAlias*. Der Alias der Token-Exchange-Rolle. Wenn der Rollenalias nicht existiert, erstellt ihn das Installationsprogramm und verweist ihn auf die von Ihnen angegebene IAM-Token-Exchange-Rolle. Die Ausgabe des obigen Befehls sieht in etwa folgendermaßen aus (JSON format). 
**Anmerkung**  <a name="docker-local-dev-tools-production-environment-warning"></a>
Sie können die `DEPLOY_DEV_TOOLS` Umgebungsvariable auf setzen, `true` um die [Greengrass-CLI-Komponente](greengrass-cli-component.md) bereitzustellen, mit der Sie benutzerdefinierte Komponenten innerhalb des Docker-Containers entwickeln können. <a name="local-dev-tools-production-environment-warning"></a>Wir empfehlen, diese Komponente nur in Entwicklungsumgebungen zu verwenden, nicht in Produktionsumgebungen. Diese Komponente bietet Zugriff auf Informationen und Operationen, die Sie in einer Produktionsumgebung normalerweise nicht benötigen. Folgen Sie dem Prinzip der geringsten Rechte, indem Sie diese Komponente nur dort einsetzen, wo Sie sie benötigen. 

## Führen Sie die AWS IoT Greengrass Core-Software in einem Container aus
<a name="run-greengrass-image-automatic-provisioning"></a>

Dieses Tutorial zeigt Ihnen, wie Sie das Docker-Image starten, das Sie in einem Docker-Container erstellt haben. Sie können die Docker-CLI oder die Docker Compose-CLI verwenden, um das AWS IoT Greengrass Core-Software-Image in einem Docker-Container auszuführen. 

------
#### [ Docker ]

1. Führen Sie den folgenden Befehl aus, um den Docker-Container zu starten. 

   ```
   docker run --rm --init -it --name docker-image \
    -v path/to/greengrass-v2-credentials:/root/.aws/:ro \
    --env-file .env \
    -p 8883 \
    your-container-image:version
   ```

   Dieser Beispielbefehl verwendet die folgenden Argumente für [docker run](https://docs.docker.com/engine/reference/commandline/run/):
   + <a name="docker-run-rm"></a>[https://docs.docker.com/engine/reference/run/#clean-up---rm](https://docs.docker.com/engine/reference/run/#clean-up---rm). Reinigt den Behälter, wenn er austritt.
   + <a name="docker-run-init"></a>[https://docs.docker.com/engine/reference/run/#specify-an-init-process](https://docs.docker.com/engine/reference/run/#specify-an-init-process). Verwendet einen Init-Prozess im Container. 
**Anmerkung**  
Das `--init` Argument ist erforderlich, um die AWS IoT Greengrass Core-Software herunterzufahren, wenn Sie den Docker-Container beenden.
   + <a name="docker-run-it"></a>[https://docs.docker.com/engine/reference/run/#foreground](https://docs.docker.com/engine/reference/run/#foreground). (Optional) Führt den Docker-Container im Vordergrund als interaktiven Prozess aus. Sie können dies durch das `-d` Argument ersetzen, den Docker-Container stattdessen im getrennten Modus auszuführen. Weitere Informationen finden Sie unter [Separated vs Foreground](https://docs.docker.com/engine/reference/run/#detached-vs-foreground) in der Docker-Dokumentation.
   + <a name="docker-run-name"></a>[https://docs.docker.com/engine/reference/run/#name---name](https://docs.docker.com/engine/reference/run/#name---name). Führt einen Container mit dem Namen aus `aws-iot-greengrass` 
   + <a name="docker-run-v"></a>[https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/). Hängt ein Volume in den Docker-Container ein, um die Konfigurationsdatei und die Zertifikatsdateien für die AWS IoT Greengrass Ausführung innerhalb des Containers verfügbar zu machen.
   + <a name="docker-run-env-file"></a>[https://docs.docker.com/engine/reference/commandline/run/#env](https://docs.docker.com/engine/reference/commandline/run/#env). (Optional) Gibt die Umgebungsdatei an, um die Umgebungsvariablen festzulegen, die an das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container übergeben werden. Dieses Argument ist nur erforderlich, wenn Sie eine [Umgebungsdatei](run-greengrass-docker-manual-provisioning.md#create-env-file-manual-provisioning) zum Setzen von Umgebungsvariablen erstellt haben. Wenn Sie keine Umgebungsdatei erstellt haben, können Sie `--env` Argumente verwenden, um Umgebungsvariablen direkt in Ihrem Docker-Run-Befehl festzulegen.
   + <a name="docker-run-p"></a>[https://docs.docker.com/engine/reference/commandline/run/#publish](https://docs.docker.com/engine/reference/commandline/run/#publish). (Optional) Veröffentlicht den 8883-Container-Port auf dem Host-Computer. Dieses Argument ist erforderlich, wenn Sie eine Verbindung herstellen und über MQTT kommunizieren möchten, da Port 8883 für MQTT-Verkehr AWS IoT Greengrass verwendet wird. Verwenden Sie zusätzliche Argumente, um andere Ports zu öffnen. `-p`
**Anmerkung**  <a name="docker-run-cap-drop"></a>
Um Ihren Docker-Container mit erhöhter Sicherheit auszuführen, können Sie die `--cap-add` Argumente `--cap-drop` und verwenden, um Linux-Funktionen für Ihren Container selektiv zu aktivieren. Weitere Informationen finden Sie in der [Docker-Dokumentation unter Runtime-Rechte und Linux-Funktionen](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities).

1. <a name="docker-automatic-provisioning-remove-credentials-file"></a>Entfernen Sie die Anmeldeinformationen `./greengrass-v2-credentials` vom Host-Gerät.

   ```
   rm -rf ./greengrass-v2-credentials
   ```
**Wichtig**  
Sie entfernen diese Anmeldeinformationen, da sie umfassende Berechtigungen bieten, die das Kerngerät nur während der Einrichtung benötigt. Wenn Sie diese Anmeldeinformationen nicht entfernen, können Greengrass-Komponenten und andere Prozesse, die im Container ausgeführt werden, darauf zugreifen. Wenn Sie AWS Anmeldeinformationen für eine Greengrass-Komponente angeben müssen, verwenden Sie den Token-Austauschdienst. Weitere Informationen finden Sie unter [Interagieren Sie mit AWS Diensten](interact-with-aws-services.md).

------
#### [ Docker Compose ]

1. Verwenden Sie einen Texteditor, um eine Docker Compose-Datei mit dem Namen zu erstellen. `docker-compose.yml`

   Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um mithilfe von GNU Nano die Datei `docker-compose.yml` im aktuellen Verzeichnis zu erstellen.

   ```
   nano docker-compose.yml
   ```
**Anmerkung**  
Sie können auch die neueste Version der AWS bereitgestellten Compose-Datei von herunterladen und verwenden. [GitHub](https://github.com/aws-greengrass/aws-greengrass-docker/releases/)

1. Fügen Sie der Compose-Datei den folgenden Inhalt hinzu. Die Datei sollte ähnlich wie im folgenden Beispiel aussehen. *docker-image*Ersetzen Sie es durch den Namen Ihres Docker-Images. 

   ```
   version: '3.7'
    
   services:
     greengrass:
       init: true
       container_name: aws-iot-greengrass
       image: docker-image
       volumes:
         - ./greengrass-v2-credentials:/root/.aws/:ro 
       env_file: .env
       ports:
         - "8883:8883"
   ```<a name="docker-compose-optional-params"></a>

   Die folgenden Parameter in dieser Compose-Beispieldatei sind optional:
   + `ports`— Veröffentlicht die 8883 Container-Ports auf dem Host-Computer. Dieser Parameter ist erforderlich, wenn Sie eine Verbindung herstellen und über MQTT kommunizieren möchten, da Port 8883 für MQTT-Verkehr AWS IoT Greengrass verwendet wird. 
   + `env_file`— Gibt die Umgebungsdatei an, um die Umgebungsvariablen festzulegen, die an das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container übergeben werden. Dieser Parameter ist nur erforderlich, wenn Sie eine [Umgebungsdatei zum Setzen von Umgebungsvariablen](run-greengrass-docker-manual-provisioning.md#create-env-file-manual-provisioning) erstellt haben. Wenn Sie keine Umgebungsdatei erstellt haben, können Sie den [Umgebungsparameter](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) verwenden, um die Variablen direkt in Ihrer Compose-Datei festzulegen.
**Anmerkung**  <a name="docker-compose-cap-drop"></a>
Um Ihren Docker-Container mit erhöhter Sicherheit auszuführen, können Sie `cap_drop` und `cap_add` in Ihrer Compose-Datei verwenden, um selektiv Linux-Funktionen für Ihren Container zu aktivieren. Weitere Informationen finden Sie unter [Runtime-Rechte und Linux-Funktionen](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in der Docker-Dokumentation.

1. Führen Sie den folgenden Befehl aus, um den Docker-Container zu starten.

   ```
   docker-compose -f docker-compose.yml up
   ```

1. <a name="docker-automatic-provisioning-remove-credentials-file"></a>Entfernen Sie die Anmeldeinformationen `./greengrass-v2-credentials` vom Host-Gerät.

   ```
   rm -rf ./greengrass-v2-credentials
   ```
**Wichtig**  
Sie entfernen diese Anmeldeinformationen, da sie umfassende Berechtigungen bieten, die das Kerngerät nur während der Einrichtung benötigt. Wenn Sie diese Anmeldeinformationen nicht entfernen, können Greengrass-Komponenten und andere Prozesse, die im Container ausgeführt werden, darauf zugreifen. Wenn Sie AWS Anmeldeinformationen für eine Greengrass-Komponente angeben müssen, verwenden Sie den Token-Austauschdienst. Weitere Informationen finden Sie unter [Interagieren Sie mit AWS Diensten](interact-with-aws-services.md).

------

## Nächste Schritte
<a name="run-greengrass-docker-next-steps"></a>

<a name="run-greengrass-docker-success"></a>AWS IoT Greengrass Die Kernsoftware läuft jetzt in einem Docker-Container. Führen Sie den folgenden Befehl aus, um die Container-ID für den aktuell laufenden Container abzurufen.

```
docker ps
```

Anschließend können Sie den folgenden Befehl ausführen, um auf den Container zuzugreifen und die im Container ausgeführte AWS IoT Greengrass Core-Software zu erkunden.

```
docker exec -it container-id /bin/bash
```

Informationen zum Erstellen einer einfachen Komponente finden Sie [Schritt 4: Entwickeln und testen Sie eine Komponente auf Ihrem Gerät](create-first-component.md) unter [Tutorial: Erste Schritte mit AWS IoT Greengrass V2](getting-started.md)

**Anmerkung**  <a name="run-greengrass-commands-in-docker-note"></a>
Wenn Sie `docker exec` Befehle innerhalb des Docker-Containers ausführen, werden diese Befehle nicht in den Docker-Protokollen protokolliert. Um Ihre Befehle in den Docker-Protokollen zu protokollieren, fügen Sie dem Docker-Container eine interaktive Shell hinzu. Weitere Informationen finden Sie unter [Hängen Sie eine interaktive Shell an den Docker-Container an](docker-troubleshooting.md#debugging-docker-attach-shell).

Die AWS IoT Greengrass Core-Protokolldatei wird aufgerufen `greengrass.log` und befindet sich in. `/greengrass/v2/logs` Die Protokolldateien der Komponenten befinden sich ebenfalls im selben Verzeichnis. Um Greengrass-Logs in ein temporäres Verzeichnis auf dem Host zu kopieren, führen Sie den folgenden Befehl aus:

```
docker cp container-id:/greengrass/v2/logs /tmp/logs
```

Wenn Sie Protokolle beibehalten möchten, nachdem ein Container beendet oder entfernt wurde, empfehlen wir, dass Sie nur das Verzeichnis an das temporäre `/greengrass/v2/logs` Protokollverzeichnis auf dem Host binden, anstatt das gesamte Greengrass-Verzeichnis zu mounten. Weitere Informationen finden Sie unter [Greengrass-Logs außerhalb des Docker-Containers beibehalten](docker-troubleshooting.md#debugging-docker-persist-logs).

<a name="greengrass-docker-stop"></a>Um einen laufenden AWS IoT Greengrass Docker-Container zu beenden, führen Sie oder aus. `docker stop` `docker-compose -f docker-compose.yml stop` Diese Aktion sendet `SIGTERM` an den Greengrass-Prozess und beendet alle zugehörigen Prozesse, die im Container gestartet wurden. Der Docker-Container wird mit der `docker-init` ausführbaren Datei als Prozess-PID 1 initialisiert, was beim Entfernen aller übrig gebliebenen Zombie-Prozesse hilft. Weitere Informationen finden Sie unter [Spezifizieren Sie einen Init-Prozess](https://docs.docker.com/engine/reference/run/#specify-an-init-process) in der Docker-Dokumentation.

<a name="see-docker-troubleshooting"></a>Informationen zur Behebung von Problemen bei der Ausführung AWS IoT Greengrass in einem Docker-Container finden Sie unter. [Fehlerbehebung AWS IoT Greengrass in einem Docker-Container](docker-troubleshooting.md)

# AWS IoT Greengrass In einem Docker-Container mit manueller Ressourcenbereitstellung ausführen
<a name="run-greengrass-docker-manual-provisioning"></a>

Dieses Tutorial zeigt Ihnen, wie Sie die AWS IoT Greengrass Core-Software im Docker-Container mit manuell bereitgestellten Ressourcen installieren und ausführen. AWS 

**Topics**
+ [Voraussetzungen](#docker-manual-provisioning-prereqs)
+ [Endpunkte abrufen AWS IoT](#retrieve-iot-endpoints)
+ [Erstelle ein Ding AWS IoT](#create-iot-thing)
+ [Erstellen Sie das Ding-Zertifikat](#create-thing-certificate-mp)
+ [Erstellen Sie eine Token-Austausch-Rolle](#create-token-exchange-role)
+ [Laden Sie Zertifikate auf das Gerät herunter](#download-thing-certificates)
+ [Erstellen Sie eine Konfigurationsdatei](#create-docker-install-configuration-file)
+ [Erstellen Sie eine Umgebungsdatei](#create-env-file-manual-provisioning)
+ [Führen Sie die AWS IoT Greengrass Core-Software in einem Container aus](#run-greengrass-image-manual-provisioning)
+ [Nächste Schritte](#run-greengrass-docker-next-steps)

## Voraussetzungen
<a name="docker-manual-provisioning-prereqs"></a>

Zum Durcharbeiten dieses Tutorials ist Folgendes erforderlich:
+ 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 AWS IoT Greengrass Docker-Image. Sie können [ein Image aus dem AWS IoT Greengrass Dockerfile erstellen](build-greengrass-dockerfile.md).
+ Der Host-Computer, auf dem Sie den Docker-Container ausführen, muss die folgenden Anforderungen erfüllen:
  + <a name="docker-host-reqs"></a>Ein Linux-basiertes Betriebssystem mit einer Internetverbindung.
  + <a name="docker-engine-reqs"></a>[Docker Engine](https://docs.docker.com/engine/install/) Version 18.09 oder höher.
  + <a name="docker-compose-reqs"></a>(Optional) [Docker Compose](https://docs.docker.com/compose/install/) Version 1.22 oder höher. Docker Compose ist nur erforderlich, wenn Sie die Docker Compose-CLI zum Ausführen Ihrer Docker-Images verwenden möchten.

## Endpunkte abrufen AWS IoT
<a name="retrieve-iot-endpoints"></a>

Holen Sie sich die AWS IoT Endpunkte für Sie und speichern Sie sie AWS-Konto, um sie später zu verwenden. Ihr Gerät verwendet diese Endpunkte, um eine Verbindung herzustellen. AWS IoT Gehen Sie wie folgt vor:

1. Holen Sie sich den AWS IoT Datenendpunkt für Ihren AWS-Konto.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Rufen Sie den Endpunkt der AWS IoT Anmeldeinformationen für Ihren AWS-Konto ab.

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```

## Erstelle ein Ding AWS IoT
<a name="create-iot-thing"></a>

AWS IoT *Dinge* stehen für Geräte und logische Entitäten, mit denen eine Verbindung hergestellt wird AWS IoT. Greengrass-Core-Geräte sind AWS IoT Dinge. Wenn Sie ein Gerät als Objekt registrieren AWS IoT , kann dieses Gerät ein digitales Zertifikat zur Authentifizierung verwenden. AWS

In diesem Abschnitt erstellen Sie eine AWS IoT Sache, die Ihr Gerät repräsentiert.

**Um AWS IoT etwas zu erschaffen**

1. Erstelle AWS IoT etwas für dein Gerät. Führen Sie auf Ihrem Entwicklungscomputer den folgenden Befehl aus.
   + *MyGreengrassCore*Ersetzen Sie es durch den Namen des zu verwendenden Dings. Dieser Name ist auch der Name Ihres Greengrass-Core-Geräts.
**Anmerkung**  <a name="install-argument-thing-name-constraint"></a>
Der Name der Sache darf keine Doppelpunkte (`:`) enthalten.

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Optional) Fügen Sie das AWS IoT Ding einer neuen oder vorhandenen Dinggruppe hinzu. Sie verwenden Dinggruppen, um Flotten von Greengrass-Kerngeräten zu verwalten. Wenn Sie Softwarekomponenten auf Ihren Geräten bereitstellen, können Sie einzelne Geräte oder Gerätegruppen gezielt ansprechen. Sie können ein Gerät zu einer Dinggruppe mit einer aktiven Greengrass-Bereitstellung hinzufügen, um die Softwarekomponenten dieser Dinggruppe auf dem Gerät bereitzustellen. Gehen Sie wie folgt vor:

   1. (Optional) Erstellen Sie eine AWS IoT Dinggruppe.
      + *MyGreengrassCoreGroup*Ersetzen Sie durch den Namen der zu erstellenden Dinggruppe.
**Anmerkung**  <a name="install-argument-thing-group-name-constraint"></a>
Der Name der Dinggruppe darf keine Doppelpunkte (`:`) enthalten.

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Fügt das AWS IoT Ding einer Dinggruppe hinzu.
      + Ersetze es *MyGreengrassCore* durch den Namen deines AWS IoT Dings.
      + Ersetze es *MyGreengrassCoreGroup* durch den Namen der Dinggruppe.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.

## Erstellen Sie das Ding-Zertifikat
<a name="create-thing-certificate-mp"></a>

<a name="create-thing-certificate-intro-1"></a>Wenn Sie ein Gerät als AWS IoT Ding registrieren, kann dieses Gerät ein digitales Zertifikat zur Authentifizierung verwenden. AWS Dieses Zertifikat ermöglicht dem Gerät die Kommunikation mit AWS IoT und AWS IoT Greengrass.

<a name="create-thing-certificate-intro-2"></a>In diesem Abschnitt erstellen und laden Sie Zertifikate herunter, mit denen Ihr Gerät eine Verbindung herstellen kann AWS.<a name="create-thing-certificate-cloud-steps"></a>

**Um das Ding-Zertifikat zu erstellen**

1. Erstellen Sie einen Ordner, in den Sie die Zertifikate für das AWS IoT Ding herunterladen.

   ```
   mkdir greengrass-v2-certs
   ```

1. Erstellen Sie die Zertifikate für das AWS IoT Ding und laden Sie sie herunter.

   ```
   aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Speichern Sie den Amazon-Ressourcennamen (ARN) des Zertifikats, um das Zertifikat später zu konfigurieren.

Als Nächstes konfigurieren Sie das Ding-Zertifikat. Weitere Informationen finden Sie unter [Konfigurieren Sie das Ding-Zertifikat](manual-installation.md#configure-thing-certificate).

## Erstellen Sie eine Token-Austausch-Rolle
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Greengrass-Core-Geräte verwenden eine IAM-Servicerolle, die so genannte *Token-Exchange-Rolle*, um Aufrufe von Diensten zu autorisieren. AWS Das Gerät verwendet den AWS IoT Anmeldeinformationsanbieter, um temporäre AWS Anmeldeinformationen für diese Rolle abzurufen. Dadurch kann das Gerät mit Amazon Logs interagieren AWS IoT, Protokolle an Amazon CloudWatch Logs senden und benutzerdefinierte Komponentenartefakte von Amazon S3 herunterladen. Weitere Informationen finden Sie unter [Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Sie verwenden einen AWS IoT *Rollenalias*, um die Token-Austauschrolle für Greengrass-Core-Geräte zu konfigurieren. Rollenaliase ermöglichen es Ihnen, die Token-Austauschrolle für ein Gerät zu ändern, aber die Gerätekonfiguration beizubehalten. Weitere Informationen finden Sie im [*AWS IoT Core Entwicklerhandbuch* unter Autorisieren von direkten Aufrufen von AWS Diensten](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html).

In diesem Abschnitt erstellen Sie eine Token-Exchange-IAM-Rolle und einen AWS IoT Rollenalias, der auf die Rolle verweist. Wenn Sie bereits ein Greengrass-Core-Gerät eingerichtet haben, können Sie dessen Token-Austauschrolle und seinen Rollenalias verwenden, anstatt neue zu erstellen. Anschließend konfigurieren Sie das Gerät so, dass es AWS IoT diese Rolle und diesen Alias verwendet.

**Um eine Token-Exchange-IAM-Rolle zu erstellen**

1. <a name="create-token-exchange-role-create-iam-role"></a>Erstellen Sie eine IAM-Rolle, die Ihr Gerät als Token-Austauschrolle verwenden kann. Gehen Sie wie folgt vor:

   1. Erstellen Sie eine Datei, die das Dokument mit der Vertrauensrichtlinie enthält, das für die Token-Austauschrolle erforderlich ist.

      <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

      ```
      nano device-role-trust-policy.json
      ```

      Kopieren Sie den folgenden JSON-Code in die Datei.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Erstellen Sie die Token-Austauschrolle mit dem Dokument zur Vertrauensrichtlinie.
      + *GreengrassV2TokenExchangeRole*Ersetzen Sie es durch den Namen der zu erstellenden IAM-Rolle.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Erstellen Sie eine Datei, die das Dokument mit der Zugriffsrichtlinie enthält, das für die Token-Austauschrolle erforderlich ist.

      <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

      ```
      nano device-role-access-policy.json
      ```

      Kopieren Sie den folgenden JSON-Code in die Datei.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**Anmerkung**  
Diese Zugriffsrichtlinie erlaubt keinen Zugriff auf Komponentenartefakte in S3-Buckets. Um benutzerdefinierte Komponenten bereitzustellen, die Artefakte in Amazon S3 definieren, müssen Sie der Rolle Berechtigungen hinzufügen, damit Ihr Kerngerät Komponentenartefakte abrufen kann. Weitere Informationen finden Sie unter [Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte](device-service-role.md#device-service-role-access-s3-bucket).  
Wenn Sie noch keinen S3-Bucket für Komponentenartefakte haben, können Sie diese Berechtigungen später hinzufügen, nachdem Sie einen Bucket erstellt haben.

   1. Erstellen Sie die IAM-Richtlinie anhand des Richtliniendokuments.
      + *GreengrassV2TokenExchangeRoleAccess*Ersetzen Sie es durch den Namen der zu erstellenden IAM-Richtlinie.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Hängen Sie die IAM-Richtlinie an die Token-Exchange-Rolle an.
      + Ersetzen Sie *GreengrassV2TokenExchangeRole* durch den Namen der IAM-Rolle.
      + Ersetzen Sie den Richtlinien-ARN durch den ARN der IAM-Richtlinie, die Sie im vorherigen Schritt erstellt haben.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Erstellen Sie einen AWS IoT Rollenalias, der auf die Token-Exchange-Rolle verweist.
   + *GreengrassCoreTokenExchangeRoleAlias*Ersetzen Sie ihn durch den Namen des Rollenalias, den Sie erstellen möchten.
   + Ersetzen Sie den Rollen-ARN durch den ARN der IAM-Rolle, die Sie im vorherigen Schritt erstellt haben.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**Anmerkung**  
Um einen Rollenalias zu erstellen, benötigen Sie die Berechtigung, die Token-Exchange-IAM-Rolle zu übergeben. AWS IoT Wenn Sie beim Versuch, einen Rollenalias zu erstellen, eine Fehlermeldung erhalten, überprüfen Sie, ob Ihr AWS Benutzer über diese Berechtigung verfügt. *Weitere Informationen finden Sie im [Benutzerhandbuch unter Erteilen von Benutzerberechtigungen zur Übergabe einer Rolle an einen AWS Dienst](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html).AWS Identity and Access Management *

1. Erstellen und fügen Sie eine AWS IoT Richtlinie hinzu, die es Ihrem Greengrass-Core-Gerät ermöglicht, den Rollenalias zu verwenden, um die Token-Austauschrolle zu übernehmen. Wenn Sie bereits ein Greengrass-Core-Gerät eingerichtet haben, können Sie dessen AWS IoT Rollenalias-Richtlinie anhängen, anstatt eine neue zu erstellen. Gehen Sie wie folgt vor:

   1. (Optional) Erstellen Sie eine Datei, die das AWS IoT Richtliniendokument enthält, das für den Rollenalias erforderlich ist.

      <a name="nano-command-intro"></a>Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um die Datei mit GNU Nano zu erstellen.

      ```
      nano greengrass-v2-iot-role-alias-policy.json
      ```

      Kopieren Sie den folgenden JSON-Code in die Datei.
      + Ersetzen Sie den Ressourcen-ARN durch den ARN Ihres Rollenalias.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

   1. Erstellen Sie eine AWS IoT Richtlinie aus dem Richtliniendokument.
      + *GreengrassCoreTokenExchangeRoleAliasPolicy*Ersetzen Sie es durch den Namen der zu erstellenden AWS IoT Richtlinie.

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

      Die Antwort sieht ähnlich wie im folgenden Beispiel aus, wenn die Anfrage erfolgreich ist.

      ```
      {
        "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyDocument": "{
          \\"Version\\":\\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": \\"iot:AssumeRoleWithCertificate\\",
              \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\"
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Hängen Sie die AWS IoT Richtlinie an das Zertifikat der AWS IoT Sache an.
      + *GreengrassCoreTokenExchangeRoleAliasPolicy*Ersetzen Sie es durch den Namen der AWS IoT Rollenalias-Richtlinie.
      + Ersetzen Sie den Ziel-ARN durch den ARN des Zertifikats für Ihr AWS IoT Ding.

      ```
      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      Der Befehl hat keine Ausgabe, wenn die Anfrage erfolgreich ist.

## Laden Sie Zertifikate auf das Gerät herunter
<a name="download-thing-certificates"></a>

Zuvor haben Sie das Zertifikat Ihres Geräts auf Ihren Entwicklungscomputer heruntergeladen. In diesem Abschnitt laden Sie das Zertifikat der Amazon Root Certificate Authority (CA) herunter. Wenn Sie dann planen, die AWS IoT Greengrass Core-Software in Docker auf einem anderen Computer als Ihrem Entwicklungscomputer auszuführen, kopieren Sie die Zertifikate auf diesen Host-Computer. Die AWS IoT Greengrass Core-Software verwendet diese Zertifikate, um eine Verbindung zum AWS IoT Cloud-Dienst herzustellen.

**Um Zertifikate auf das Gerät herunterzuladen**

1. Laden Sie das Zertifikat der Amazon Root Certificate Authority (CA) auf Ihren Entwicklungscomputer herunter. AWS IoT Zertifikate sind standardmäßig dem Root-CA-Zertifikat von Amazon zugeordnet.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o ./greengrass-v2-certs/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o .\greengrass-v2-certs\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile .\greengrass-v2-certs\AmazonRootCA1.pem
   ```

------

1. Wenn Sie die AWS IoT Greengrass Core-Software in Docker auf einem anderen Gerät als Ihrem Entwicklungscomputer ausführen möchten, kopieren Sie die Zertifikate auf den Host-Computer. Wenn SSH und SCP auf dem Entwicklungscomputer und dem Hostcomputer aktiviert sind, können Sie den `scp` Befehl auf Ihrem Entwicklungscomputer verwenden, um die Zertifikate zu übertragen. *device-ip-address*Ersetzen Sie es durch die IP-Adresse Ihres Host-Computers.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

## Erstellen Sie eine Konfigurationsdatei
<a name="create-docker-install-configuration-file"></a>

1. Erstellen Sie auf dem Host-Computer einen Ordner, in dem Sie Ihre Konfigurationsdatei ablegen.

   ```
   mkdir ./greengrass-v2-config
   ```

1. Verwenden Sie einen Texteditor, um eine Konfigurationsdatei mit dem Namen `config.yaml` im `./greengrass-v2-config` Ordner zu erstellen.

   Sie können beispielsweise den folgenden Befehl ausführen, um GNU Nano zum Erstellen des `config.yaml` zu verwenden. 

   ```
   nano ./greengrass-v2-config/config.yaml
   ```

1. Kopieren Sie den folgenden YAML-Inhalt in die Datei. Diese Teilkonfigurationsdatei spezifiziert Systemparameter und Greengrass-Nukleus-Parameter.

   ```
   ---
   system:
     certificateFilePath: "/tmp/certs/device.pem.crt"
     privateKeyPath: "/tmp/certs/private.pem.key"
     rootCaPath: "/tmp/certs/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "nucleus-version"
       configuration:
         awsRegion: "region"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         iotDataEndpoint: "device-data-prefix-ats.iot.region.amazonaws.com"
         iotCredEndpoint: "device-credentials-prefix.credentials.region.amazonaws.com"
   ```

   Ersetzen Sie dann die folgenden Werte:
   + */tmp/certs*. Das Verzeichnis im Docker-Container, in das Sie die heruntergeladenen Zertifikate mounten, wenn Sie den Container starten.
   + `/greengrass/v2`. Der Greengrass-Stammordner, den Sie für die Installation verwenden möchten. Sie verwenden die `GGC_ROOT` Umgebungsvariable, um diesen Wert festzulegen.
   + *MyGreengrassCore*. Der Name der AWS IoT Sache.
   + *nucleus-version*. Die Version der zu AWS IoT Greengrass installierenden Core-Software. Dieser Wert muss mit der Version des Docker-Images oder der Docker-Datei übereinstimmen, die Sie heruntergeladen haben. Wenn Sie das Greengrass Docker-Image mit dem `latest` Tag heruntergeladen haben, verwenden Sie es, um die Image-Version ****docker inspect *image-id***** zu sehen.
   + *region*. Der AWS-Region Ort, an dem Sie Ihre AWS IoT Ressourcen erstellt haben. Sie müssen auch denselben Wert für die `AWS_REGION` Umgebungsvariable in Ihrer [Umgebungsdatei](#create-env-file-manual-provisioning) angeben.
   + *GreengrassCoreTokenExchangeRoleAlias*. Der Alias der Token-Exchange-Rolle.
   + *device-data-prefix*. Das Präfix für Ihren AWS IoT Datenendpunkt.
   + *device-credentials-prefix*. Das Präfix für den Endpunkt Ihrer AWS IoT Anmeldeinformationen.

## Erstellen Sie eine Umgebungsdatei
<a name="create-env-file-manual-provisioning"></a>

In diesem Tutorial werden mithilfe einer Umgebungsdatei die Umgebungsvariablen festgelegt, die an das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container übergeben werden. Sie können auch [das `--env` Argument `-e` oder](https://docs.docker.com/engine/reference/commandline/run/#env) in Ihrem `docker run` Befehl verwenden, um Umgebungsvariablen im Docker-Container festzulegen, oder Sie können die Variablen in [einem `environment` Block](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) in der `docker-compose.yml` Datei festlegen.

1. Verwenden Sie einen Texteditor, um eine Umgebungsdatei mit dem Namen `.env` zu erstellen.

   Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um mithilfe von GNU Nano die Datei `.env` im aktuellen Verzeichnis zu erstellen.

   ```
   nano .env
   ```

1. Kopieren Sie den folgenden Inhalt in die Datei.

   ```
   GGC_ROOT_PATH=/greengrass/v2
   AWS_REGION=region
   PROVISION=false
   COMPONENT_DEFAULT_USER=ggc_user:ggc_group
   INIT_CONFIG=/tmp/config/config.yaml
   ```

   Ersetzen Sie dann die folgenden Werte.
   + `/greengrass/v2`. Der Pfad zum Stammordner, der für die Installation der AWS IoT Greengrass Core-Software verwendet werden soll.
   + *region*. Der AWS-Region Ort, an dem Sie Ihre AWS IoT Ressourcen erstellt haben. Sie müssen denselben Wert für den `awsRegion` Konfigurationsparameter in Ihrer [Konfigurationsdatei](#create-docker-install-configuration-file) angeben.
   + */tmp/config/*. Der Ordner, in den Sie die Konfigurationsdatei mounten, wenn Sie den Docker-Container starten.
**Anmerkung**  <a name="docker-local-dev-tools-production-environment-warning"></a>
Sie können die `DEPLOY_DEV_TOOLS` Umgebungsvariable auf setzen, `true` um die [Greengrass-CLI-Komponente](greengrass-cli-component.md) bereitzustellen, mit der Sie benutzerdefinierte Komponenten innerhalb des Docker-Containers entwickeln können. <a name="local-dev-tools-production-environment-warning"></a>Wir empfehlen, diese Komponente nur in Entwicklungsumgebungen zu verwenden, nicht in Produktionsumgebungen. Diese Komponente bietet Zugriff auf Informationen und Operationen, die Sie in einer Produktionsumgebung normalerweise nicht benötigen. Folgen Sie dem Prinzip der geringsten Rechte, indem Sie diese Komponente nur dort einsetzen, wo Sie sie benötigen. 

## Führen Sie die AWS IoT Greengrass Core-Software in einem Container aus
<a name="run-greengrass-image-manual-provisioning"></a>

Dieses Tutorial zeigt Ihnen, wie Sie das Docker-Image starten, das Sie in einem Docker-Container erstellt haben. Sie können die Docker-CLI oder die Docker Compose-CLI verwenden, um das AWS IoT Greengrass Core-Software-Image in einem Docker-Container auszuführen. 

------
#### [ Docker ]
+ Dieses Tutorial zeigt Ihnen, wie Sie das Docker-Image starten, das Sie in einem Docker-Container erstellt haben. 

  ```
  docker run --rm --init -it --name docker-image \
   -v path/to/greengrass-v2-config:/tmp/config/:ro \
   -v path/to/greengrass-v2-certs:/tmp/certs:ro \ 
   --env-file .env \
   -p 8883 \
   your-container-image:version
  ```

  Dieser Beispielbefehl verwendet die folgenden Argumente für [docker run](https://docs.docker.com/engine/reference/commandline/run/):
  + <a name="docker-run-rm"></a>[https://docs.docker.com/engine/reference/run/#clean-up---rm](https://docs.docker.com/engine/reference/run/#clean-up---rm). Reinigt den Behälter, wenn er austritt.
  + <a name="docker-run-init"></a>[https://docs.docker.com/engine/reference/run/#specify-an-init-process](https://docs.docker.com/engine/reference/run/#specify-an-init-process). Verwendet einen Init-Prozess im Container. 
**Anmerkung**  
Das `--init` Argument ist erforderlich, um die AWS IoT Greengrass Core-Software herunterzufahren, wenn Sie den Docker-Container beenden.
  + <a name="docker-run-it"></a>[https://docs.docker.com/engine/reference/run/#foreground](https://docs.docker.com/engine/reference/run/#foreground). (Optional) Führt den Docker-Container im Vordergrund als interaktiven Prozess aus. Sie können dies durch das `-d` Argument ersetzen, den Docker-Container stattdessen im getrennten Modus auszuführen. Weitere Informationen finden Sie unter [Separated vs Foreground](https://docs.docker.com/engine/reference/run/#detached-vs-foreground) in der Docker-Dokumentation.
  + <a name="docker-run-name"></a>[https://docs.docker.com/engine/reference/run/#name---name](https://docs.docker.com/engine/reference/run/#name---name). Führt einen Container mit dem Namen aus `aws-iot-greengrass` 
  + <a name="docker-run-v"></a>[https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/). Hängt ein Volume in den Docker-Container ein, um die Konfigurationsdatei und die Zertifikatsdateien für die AWS IoT Greengrass Ausführung innerhalb des Containers verfügbar zu machen.
  + <a name="docker-run-env-file"></a>[https://docs.docker.com/engine/reference/commandline/run/#env](https://docs.docker.com/engine/reference/commandline/run/#env). (Optional) Gibt die Umgebungsdatei an, um die Umgebungsvariablen festzulegen, die an das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container übergeben werden. Dieses Argument ist nur erforderlich, wenn Sie eine [Umgebungsdatei](#create-env-file-manual-provisioning) zum Setzen von Umgebungsvariablen erstellt haben. Wenn Sie keine Umgebungsdatei erstellt haben, können Sie `--env` Argumente verwenden, um Umgebungsvariablen direkt in Ihrem Docker-Run-Befehl festzulegen.
  + <a name="docker-run-p"></a>[https://docs.docker.com/engine/reference/commandline/run/#publish](https://docs.docker.com/engine/reference/commandline/run/#publish). (Optional) Veröffentlicht den 8883-Container-Port auf dem Host-Computer. Dieses Argument ist erforderlich, wenn Sie eine Verbindung herstellen und über MQTT kommunizieren möchten, da Port 8883 für MQTT-Verkehr AWS IoT Greengrass verwendet wird. Verwenden Sie zusätzliche Argumente, um andere Ports zu öffnen. `-p`
**Anmerkung**  <a name="docker-run-cap-drop"></a>
Um Ihren Docker-Container mit erhöhter Sicherheit auszuführen, können Sie die `--cap-add` Argumente `--cap-drop` und verwenden, um selektiv Linux-Funktionen für Ihren Container zu aktivieren. Weitere Informationen finden Sie in der [Docker-Dokumentation unter Runtime-Rechte und Linux-Funktionen](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities).

------
#### [ Docker Compose ]

1. Verwenden Sie einen Texteditor, um eine Docker Compose-Datei mit dem Namen zu erstellen. `docker-compose.yml`

   Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um mithilfe von GNU Nano die Datei `docker-compose.yml` im aktuellen Verzeichnis zu erstellen.

   ```
   nano docker-compose.yml
   ```
**Anmerkung**  
Sie können auch die neueste Version der AWS bereitgestellten Compose-Datei von herunterladen und verwenden. [GitHub](https://github.com/aws-greengrass/aws-greengrass-docker/releases/)

1. Fügen Sie der Compose-Datei den folgenden Inhalt hinzu. Die Datei sollte ähnlich wie im folgenden Beispiel aussehen. *your-container-name:version*Ersetzen Sie es durch den Namen Ihres Docker-Images. 

   ```
   version: '3.7'
    
   services:
     greengrass:
       init: true
       build:
         context: .
       container_name: aws-iot-greengrass
       image: your-container-name:version
       volumes:
         - /path/to/greengrass-v2-config:/tmp/config/:ro
         - /path/to/greengrass-v2-certs:/tmp/certs:ro 
       env_file: .env
       ports:
         - "8883:8883"
   ```<a name="docker-compose-optional-params"></a>

   Die folgenden Parameter in dieser Compose-Beispieldatei sind optional:
   + `ports`— Veröffentlicht die 8883 Container-Ports auf dem Host-Computer. Dieser Parameter ist erforderlich, wenn Sie eine Verbindung herstellen und über MQTT kommunizieren möchten, da Port 8883 für MQTT-Verkehr AWS IoT Greengrass verwendet wird. 
   + `env_file`— Gibt die Umgebungsdatei an, um die Umgebungsvariablen festzulegen, die an das AWS IoT Greengrass Core-Software-Installationsprogramm im Docker-Container übergeben werden. Dieser Parameter ist nur erforderlich, wenn Sie eine [Umgebungsdatei zum Setzen von Umgebungsvariablen](#create-env-file-manual-provisioning) erstellt haben. Wenn Sie keine Umgebungsdatei erstellt haben, können Sie den [Umgebungsparameter](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) verwenden, um die Variablen direkt in Ihrer Compose-Datei festzulegen.
**Anmerkung**  <a name="docker-compose-cap-drop"></a>
Um Ihren Docker-Container mit erhöhter Sicherheit auszuführen, können Sie `cap_drop` und `cap_add` in Ihrer Compose-Datei verwenden, um selektiv Linux-Funktionen für Ihren Container zu aktivieren. Weitere Informationen finden Sie unter [Runtime-Rechte und Linux-Funktionen](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) in der Docker-Dokumentation.

1. Führen Sie den folgenden Befehl aus, um den Container zu starten.

   ```
   docker-compose -f docker-compose.yml up
   ```

------

## Nächste Schritte
<a name="run-greengrass-docker-next-steps"></a>

<a name="run-greengrass-docker-success"></a>AWS IoT Greengrass Die Kernsoftware läuft jetzt in einem Docker-Container. Führen Sie den folgenden Befehl aus, um die Container-ID für den aktuell laufenden Container abzurufen.

```
docker ps
```

Anschließend können Sie den folgenden Befehl ausführen, um auf den Container zuzugreifen und die im Container ausgeführte AWS IoT Greengrass Core-Software zu erkunden.

```
docker exec -it container-id /bin/bash
```

Informationen zum Erstellen einer einfachen Komponente finden Sie [Schritt 4: Entwickeln und testen Sie eine Komponente auf Ihrem Gerät](create-first-component.md) unter [Tutorial: Erste Schritte mit AWS IoT Greengrass V2](getting-started.md)

**Anmerkung**  <a name="run-greengrass-commands-in-docker-note"></a>
Wenn Sie `docker exec` Befehle innerhalb des Docker-Containers ausführen, werden diese Befehle nicht in den Docker-Protokollen protokolliert. Um Ihre Befehle in den Docker-Protokollen zu protokollieren, fügen Sie dem Docker-Container eine interaktive Shell hinzu. Weitere Informationen finden Sie unter [Hängen Sie eine interaktive Shell an den Docker-Container an](docker-troubleshooting.md#debugging-docker-attach-shell).

Die AWS IoT Greengrass Core-Protokolldatei wird aufgerufen `greengrass.log` und befindet sich in. `/greengrass/v2/logs` Die Protokolldateien der Komponenten befinden sich ebenfalls im selben Verzeichnis. Um Greengrass-Logs in ein temporäres Verzeichnis auf dem Host zu kopieren, führen Sie den folgenden Befehl aus:

```
docker cp container-id:/greengrass/v2/logs /tmp/logs
```

Wenn Sie Protokolle beibehalten möchten, nachdem ein Container beendet oder entfernt wurde, empfehlen wir, dass Sie nur das Verzeichnis an das temporäre `/greengrass/v2/logs` Protokollverzeichnis auf dem Host binden, anstatt das gesamte Greengrass-Verzeichnis zu mounten. Weitere Informationen finden Sie unter [Greengrass-Logs außerhalb des Docker-Containers beibehalten](docker-troubleshooting.md#debugging-docker-persist-logs).

<a name="greengrass-docker-stop"></a>Um einen laufenden AWS IoT Greengrass Docker-Container zu beenden, führen Sie oder aus. `docker stop` `docker-compose -f docker-compose.yml stop` Diese Aktion sendet `SIGTERM` an den Greengrass-Prozess und beendet alle zugehörigen Prozesse, die im Container gestartet wurden. Der Docker-Container wird mit der `docker-init` ausführbaren Datei als Prozess-PID 1 initialisiert, was beim Entfernen aller übrig gebliebenen Zombie-Prozesse hilft. Weitere Informationen finden Sie unter [Spezifizieren Sie einen Init-Prozess](https://docs.docker.com/engine/reference/run/#specify-an-init-process) in der Docker-Dokumentation.

<a name="see-docker-troubleshooting"></a>Informationen zur Behebung von Problemen bei der Ausführung AWS IoT Greengrass in einem Docker-Container finden Sie unter. [Fehlerbehebung AWS IoT Greengrass in einem Docker-Container](docker-troubleshooting.md)

# Fehlerbehebung AWS IoT Greengrass in einem Docker-Container
<a name="docker-troubleshooting"></a>

Verwenden Sie die folgenden Informationen, um Probleme bei der Ausführung AWS IoT Greengrass in einem Docker-Container zu beheben und Probleme AWS IoT Greengrass im Docker-Container zu debuggen.

**Topics**
+ [Behebung von Problemen beim Ausführen des Docker-Containers](#troubleshooting-container-errors)
+ [Debuggen AWS IoT Greengrass in einem Docker-Container](#debugging-greengrass-in-docker)

## Behebung von Problemen beim Ausführen des Docker-Containers
<a name="troubleshooting-container-errors"></a>

Verwenden Sie die folgenden Informationen, um Probleme bei der Ausführung AWS IoT Greengrass in einem Docker-Container zu beheben.

**Topics**
+ [Fehler: Interaktive Anmeldung von einem Nicht-TTY-Gerät aus nicht möglich](#docker-troubleshootin-ecr-get-login-password)
+ [Fehler: Unbekannte Optionen: - no-include-email](#docker-troubleshooting-cli-version)
+ [Fehler: Eine Firewall blockiert die Freigabe von Dateien zwischen Fenstern und den Containern.](#docker-troubleshooting-firewall)
+ [Fehler: Beim Aufrufen der GetAuthorizationToken Operation ist ein Fehler aufgetreten (AccessDeniedException): User: arn:aws:iam: :user/ *account-id* ist <user-name>nicht berechtigt,: ecr: on resource: \$1 auszuführen GetAuthorizationToken](#docker-troubleshooting-ecr-perms)
+ [Fehler: Sie haben Ihr Pull-Rate-Limit erreicht](#docker-troubleshooting-too-many-requests)

### Fehler: Interaktive Anmeldung von einem Nicht-TTY-Gerät aus nicht möglich
<a name="docker-troubleshootin-ecr-get-login-password"></a>

Dieser Fehler kann auftreten, wenn Sie den `aws ecr get-login-password` Befehl ausführen. Stellen Sie sicher, dass Sie die neueste AWS CLI Version 2 oder Version 1 installiert haben. Wir empfehlen Ihnen, die AWS CLI Version 2 zu verwenden. Weitere Informationen finden Sie unter [Installieren der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) im *AWS Command Line Interface -Benutzerhandbuch*.

### Fehler: Unbekannte Optionen: - no-include-email
<a name="docker-troubleshooting-cli-version"></a>

Dieser Fehler kann auftreten, wenn Sie den `aws ecr get-login` Befehl ausführen. Stellen Sie sicher, dass Sie die neueste AWS CLI Version installiert haben (z. B. Run:`pip install awscli --upgrade --user`). Weitere Informationen finden Sie im *AWS Command Line Interface Benutzerhandbuch AWS Command Line Interface * [unter Installation von unter Microsoft Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html).

### Fehler: Eine Firewall blockiert die Freigabe von Dateien zwischen Fenstern und den Containern.
<a name="docker-troubleshooting-firewall"></a>

Möglicherweise erhalten Sie diesen Fehler oder eine `Firewall Detected` Meldung, wenn Sie Docker auf einem Windows-Computer ausführen. Dies kann auch auftreten, wenn Sie an einem Virtual Private Network (VPN) angemeldet sind und Ihre Netzwerkeinstellungen die Bereitstellung des freigegebenen Laufwerks verhindern. Deaktivieren Sie in diesem Fall das VPN und führen Sie den Docker-Container erneut aus.

### Fehler: Beim Aufrufen der GetAuthorizationToken Operation ist ein Fehler aufgetreten (AccessDeniedException): User: arn:aws:iam: :user/ *account-id* ist <user-name>nicht berechtigt,: ecr: on resource: \$1 auszuführen GetAuthorizationToken
<a name="docker-troubleshooting-ecr-perms"></a>

Möglicherweise erhalten Sie diesen Fehler, wenn Sie den `aws ecr get-login-password` Befehl ausführen, wenn Sie nicht über ausreichende Berechtigungen für den Zugriff auf ein Amazon ECR-Repository verfügen. Weitere Informationen finden Sie unter [Beispiele für Amazon ECR Repository-Richtlinien](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) und [Zugriff auf ein Amazon ECR-Repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html) im *Amazon ECR-Benutzerhandbuch*.

### Fehler: Sie haben Ihr Pull-Rate-Limit erreicht
<a name="docker-troubleshooting-too-many-requests"></a>

Docker Hub begrenzt die Anzahl der Pull-Anfragen, die anonyme und kostenlose Docker Hub-Benutzer stellen können. Wenn du die Ratenlimits für anonyme oder kostenlose Benutzer-Pull-Requests überschreitest, erhältst du einen der folgenden Fehler: 

  

```
ERROR: toomanyrequests: Too Many Requests.
```

  

```
You have reached your pull rate limit.
```

Um diese Fehler zu beheben, kannst du einige Stunden warten, bevor du einen weiteren Pull-Request versuchst. Wenn Sie planen, regelmäßig eine große Anzahl von Pull-Requests einzureichen, finden Sie auf der [Docker Hub-Website](https://www.docker.com/increase-rate-limits) Informationen zu Ratenbegrenzungen und Optionen für die Authentifizierung und Aktualisierung Ihres Docker-Kontos. 

## Debuggen AWS IoT Greengrass in einem Docker-Container
<a name="debugging-greengrass-in-docker"></a>

Zum Debuggen von Problemen mit einem Docker-Container können Sie die Greengrass-Laufzeitprotokolle erhalten oder eine interaktive Shell an den Docker-Container anfügen.

### Greengrass-Logs außerhalb des Docker-Containers beibehalten
<a name="debugging-docker-persist-logs"></a>

Nachdem Sie einen AWS IoT Greengrass Container gestoppt haben, können Sie den folgenden `docker cp ` Befehl verwenden, um die Greengrass-Protokolle aus dem Docker-Container in ein temporäres Protokollverzeichnis zu kopieren. 

```
docker cp container-id:/greengrass/v2/logs /tmp/logs
```

Um Protokolle auch nach dem Beenden oder Entfernen eines Containers beizubehalten, müssen Sie den AWS IoT Greengrass Docker-Container nach dem Bind-Mounten des Verzeichnisses ausführen. `/greengrass/v2/logs` 

Um das `/greengrass/v2/logs` Verzeichnis per Bind-Mount zu mounten, führen Sie einen der folgenden Schritte aus, wenn Sie einen neuen Docker-Container ausführen. AWS IoT Greengrass 
+ In Ihren Befehl aufnehmen`-v /tmp/logs:/greengrass/v2/logs:ro`. `docker run`

  Ändern Sie den `volumes` Block in der Compose-Datei so, dass er die folgende Zeile enthält, bevor Sie Ihren `docker-compose up` Befehl ausführen.

  ```
  volumes:
   - /tmp/logs:/greengrass/v2/logs:ro
  ```

Sie können dann Ihre Logs `/tmp/logs` auf Ihrem Host überprüfen, um Greengrass-Logs zu sehen, während AWS IoT Greengrass es im Docker-Container läuft.

Hinweise zum Ausführen von Greengrass-Docker-Containern finden Sie unter und [ AWS IoT Greengrass In Docker mit manueller Bereitstellung ausführen](run-greengrass-docker-manual-provisioning.md) [ AWS IoT Greengrass In Docker mit automatischer Bereitstellung ausführen](run-greengrass-docker-automatic-provisioning.md)

### Hängen Sie eine interaktive Shell an den Docker-Container an
<a name="debugging-docker-attach-shell"></a>

Wenn Sie `docker exec` Befehle innerhalb des Docker-Containers ausführen, werden diese Befehle nicht in den Docker-Protokollen erfasst. Wenn Sie Ihre Befehle in den Docker-Protokollen protokollieren, können Sie den Status des Greengrass Docker-Containers untersuchen. Führen Sie eine der folgenden Aktionen aus:
+ Führen Sie den folgenden Befehl in einem separaten Terminal aus, um die Standardeingabe, -ausgabe und -fehler Ihres Terminals an den laufenden Container anzuhängen. Auf diese Weise können Sie den Docker-Container von Ihrem aktuellen Terminal aus anzeigen und steuern.

  ```
  docker attach container-id
  ```
+ Führen Sie den folgenden Befehl in einem separaten Terminal aus. Auf diese Weise können Sie Ihre Befehle im interaktiven Modus ausführen, auch wenn der Container nicht angehängt ist.

  ```
  docker exec -it container-id sh -c "command > /proc/1/fd/1"
  ```

Allgemeine Informationen AWS IoT Greengrass zur Problembehandlung finden Sie unter[Problembehebung AWS IoT Greengrass V2](troubleshooting.md).