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.
Ausführen AWS IoT Greengrass in einem Docker-Container mit automatischer Ressourcenbereitstellung
In diesem Tutorial erfahren Sie, wie Sie 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 dem Container keine AWS Anmeldeinformationen bereitstellen können, können Sie die AWS Ressourcen bereitstellen, die das Core-Gerät für den Betrieb benötigt. Sie können die Entwicklungstools auch auf einem Core-Gerät bereitstellen, das als Entwicklungsgerät verwendet werden soll. Auf diese Weise können Sie dem Gerät weniger Berechtigungen erteilen, wenn Sie den Container ausführen. Weitere Informationen finden Sie unter Ausführen AWS IoT Greengrass in einem Docker-Container mit manueller Ressourcenbereitstellung.
Voraussetzungen
Um dieses Tutorial abzuschließen, benötigen Sie Folgendes.
-
Ein(e) AWS-Konto. Falls Sie noch keines haben, beachten Sie die Informationen unter Richten Sie eine ein AWS-Konto.
-
Ein AWS IAM-Benutzer mit Berechtigungen zum Bereitstellen der AWS IoT und IAM-Ressourcen für ein Greengrass-Core-Gerät. Das AWS IoT Greengrass-Core-Softwareinstallationsprogramm verwendet Ihre -AWSAnmeldeinformationen, um diese Ressourcen automatisch bereitzustellen. Informationen zur minimalen IAM-Richtlinie zur automatischen Bereitstellung von Ressourcen finden Sie unter Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen.
-
Ein AWS IoT Greengrass Docker-Image. Sie können ein Image aus der AWS IoT Greengrass Dockerfile erstellen.
-
Der Host-Computer, auf dem Sie den Docker-Container ausführen, muss die folgenden Anforderungen erfüllen:
-
Ein Linux-basiertes Betriebssystem mit einer Internetverbindung.
-
Docker-Engine
-Version 18.09 oder höher. -
(Optional) Docker Compose
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 Ihrer AWS-Anmeldeinformationen
In diesem Schritt erstellen Sie eine Datei mit Anmeldeinformationen 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 Datei mit den Anmeldeinformationen enthält, /root/.aws/
in im Docker-Container mounten. Das AWS IoT Greengrass Installationsprogramm verwendet diese Anmeldeinformationen, um Ressourcen in Ihrem bereitzustellenAWS-Konto. Informationen zur minimalen IAM-Richtlinie, die das Installationsprogramm zum automatischen Bereitstellen von Ressourcen benötigt, finden Sie unter Minimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen.
-
Rufen Sie eine der folgenden Optionen ab.
-
Langfristige Anmeldeinformationen für einen IAM-Benutzer. Informationen zum Abrufen langfristiger Anmeldeinformationen finden Sie unter Verwalten von Zugriffsschlüsseln für IAM-Benutzer im IAM-Benutzerhandbuch.
-
(Empfohlen) Temporäre Anmeldeinformationen für eine IAM-Rolle. Informationen zum Abrufen temporärer Anmeldeinformationen finden Sie unter Verwenden temporärer Sicherheitsanmeldeinformationen mit AWS CLI dem im IAM-Benutzerhandbuch.
-
-
Erstellen Sie einen Ordner, in dem Sie Ihre Anmeldeinformationsdatei ablegen.
mkdir ./greengrass-v2-credentials
-
Verwenden Sie einen Texteditor, um eine Konfigurationsdatei mit dem Namen
credentials
im./greengrass-v2-credentials
Ordner 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
-
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 einschließen.
Wichtig
Entfernen Sie die Datei mit den Anmeldeinformationen vom Hostcomputer, nachdem Sie den AWS IoT Greengrass Container gestartet haben. Wenn Sie die Datei mit den Anmeldeinformationen nicht entfernen, bleiben Ihre AWS Anmeldeinformationen im Container gemountet. Weitere Informationen finden Sie unter Ausführen der AWS IoT Greengrass Core-Software in einem Container.
Erstellen einer Umgebungsdatei
In diesem Tutorial wird eine Umgebungsdatei verwendet, um die Umgebungsvariablen festzulegen, die an das AWS IoT Greengrass -Core-Softwareinstallationsprogramm im Docker-Container übergeben werden. Sie können auch das Argument -e
oder in Ihrem Befehl verwenden, um Umgebungsvariablen im Docker-Container festzulegen, oder Sie können die Variablen in einem --env
docker-compose.yml
Datei festlegen. docker run
environment
-
Verwenden Sie einen Texteditor, um eine Umgebungsdatei mit dem Namen zu erstellen
.env
.Auf einem Linux-basierten System können Sie beispielsweise den folgenden Befehl ausführen, um GNU Nano zum Erstellen des
.env
im aktuellen Verzeichnis zu verwenden.nano .env
-
Kopieren Sie den folgenden Inhalt in die Datei .
GGC_ROOT_PATH=
AWS_REGION=/greengrass/v2
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_groupErsetzen Sie dann die folgenden Werte.
-
. Der Greengrass-Stammordner, den Sie für die Installation verwenden möchten. Sie verwenden die/greengrass/v2
GGC_ROOT
Umgebungsvariable , um diesen Wert festzulegen. -
Region
. Die AWS-Region, in der Sie die Ressourcen erstellt haben. -
MyGreengrassCore
. Der Name des AWS IoT-Objekts. Wenn das Objekt nicht vorhanden ist, erstellt das Installationsprogramm es. Das Installationsprogramm lädt die Zertifikate herunter, um sich als das AWS IoT Objekt zu authentifizieren. -
MyGreengrassCoreGroup
. Der Name der AWS IoT Objektgruppe. Wenn die Objektgruppe nicht vorhanden ist, erstellt das Installationsprogramm sie und fügt ihr das Objekt hinzu. Wenn die Objektgruppe vorhanden ist und über eine aktive Bereitstellung verfügt, lädt das Core-Gerät die von 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 zu erhalten. Wenn die Rolle nicht vorhanden ist, erstellt das Installationsprogramm sie und erstellt und fügt eine Richtlinie mit dem NamenGreengrassV2TokenExchangeRole
Access an. Weitere Informationen finden Sie unter Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS. -
GreengrassCoreTokenExchangeRoleAlias
. Der Token-Exchange-Rollenalias. Wenn der Rollenalias nicht vorhanden ist, erstellt das Installationsprogramm ihn und verweist ihn auf die von Ihnen angegebene IAM-Token-Austauschrolle. Weitere Informationen finden Sie unter
Anmerkung
Sie können die
DEPLOY_DEV_TOOLS
Umgebungsvariable auf setzen,true
um die Greengrass-CLI-Komponente bereitzustellen, mit der Sie benutzerdefinierte Komponenten innerhalb des Docker-Containers entwickeln können. Wir empfehlen, diese Komponente nur in Entwicklungsumgebungen und nicht in Produktionsumgebungen zu verwenden. Diese Komponente bietet Zugriff auf Informationen und Vorgänge, die Sie normalerweise in einer Produktionsumgebung nicht benötigen. Folgen Sie dem Prinzip der geringsten Berechtigung, indem Sie diese Komponente nur auf Core-Geräten bereitstellen, auf denen Sie sie benötigen. -
Ausführen der AWS IoT Greengrass Core-Software in einem Container
In diesem Tutorial erfahren Sie, wie Sie das Docker-Image starten, das Sie in einen Docker-Container integriert 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.
Nächste Schritte
AWS IoT Greengrass Die -Core-Software wird jetzt in einem Docker-Container ausgeführt. Führen Sie den folgenden Befehl aus, um die Container-ID für den aktuell ausgeführten Container abzurufen.
docker ps
Anschließend können Sie den folgenden Befehl ausführen, um auf den Container zuzugreifen und AWS IoT Greengrass Core-Software zu erkunden, die im Container ausgeführt wird.
docker exec -it
container-id
/bin/bash
Informationen zum Erstellen einer einfachen Komponente finden Sie unter Schritt 4: Entwickeln und Testen einer Komponente auf Ihrem Gerät in Tutorial: Erste Schritte mit AWS IoT Greengrass V2
Anmerkung
Wenn Sie verwenden, docker exec
um Befehle im Docker-Container auszuführen, werden diese Befehle nicht in den Docker-Protokollen protokolliert. Um Ihre Befehle in den Docker-Protokollen zu protokollieren, fügen Sie eine interaktive Shell an den Docker-Container an. Weitere Informationen finden Sie unter Anfügen einer interaktiven Shell an den Docker-Container.
Die AWS IoT Greengrass Core-Protokolldatei heißt greengrass.log
und befindet sich in
. Komponentenprotokolldateien befinden sich ebenfalls im selben Verzeichnis. Um Greengrass-Protokolle in ein temporäres Verzeichnis auf dem Host zu kopieren, führen Sie den folgenden Befehl aus:
/logs/greengrass/v2
docker cp
container-id
:/greengrass/v2/logs/tmp/logs
Wenn Sie Protokolle nach dem Beenden oder Entfernen eines Containers beibehalten möchten, empfehlen wir, nur das
Verzeichnis an das temporäre Protokollverzeichnis auf dem Host zu binden, anstatt das gesamte Greengrass-Verzeichnis zu mounten. Weitere Informationen finden Sie unter Greengrass-Protokolle außerhalb des Docker-Containers beibehalten.
/logs/greengrass/v2
Um einen laufenden AWS IoT Greengrass Docker-Container zu stoppen, führen Sie docker stop
oder ausdocker-compose -f docker-compose.yml stop
. Diese Aktion sendet SIGTERM
an den Greengrass-Prozess und fährt alle zugehörigen Prozesse herunter, 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 verbleibenden Zombie-Prozesse hilft. Weitere Informationen finden Sie unter Specify an init process
Informationen zur Behebung von Problemen mit der Ausführung AWS IoT Greengrass in einem Docker-Container finden Sie unter Fehlerbehebung bei AWS IoT Greengrass in einem Docker-Container.