Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
AWS IoT Greengrass In einem Docker-Container mit automatischer Ressourcenbereitstellung ausführen
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 Ausführen AWS IoT Greengrass in einem Docker-Container mit manueller Ressourcenbereitstellung.
Voraussetzungen
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.
-
Ein AWS IAM Benutzer mit der Berechtigung, die AWS IoT und IAM Ressourcen für ein Greengrass-Core-Gerät bereitzustellen. 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 unterMinimale IAM-Richtlinie für das Installationsprogramm zur Bereitstellung von Ressourcen.
-
Ein AWS IoT Greengrass Docker-Image. Sie können ein Image aus dem 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 Docker Compose zum Ausführen Ihrer Docker-Images CLI verwenden möchten.
-
Konfigurieren Ihrer AWS -Anmeldeinformationen
In diesem Schritt erstellen Sie eine Anmeldeinformationsdatei auf dem Host-Computer, die Ihre Sicherheitsanmeldeinformationen enthält. AWS
Wenn Sie das AWS IoT Greengrass Docker-Image ausführen, müssen Sie den Ordner, der diese Anmeldeinformationsdatei enthält, /root/.aws/
in den Docker-Container einbinden. Das AWS IoT Greengrass Installationsprogramm verwendet diese Anmeldeinformationen, um Ressourcen in Ihrem bereitzustellen. AWS-Konto Informationen zu den IAM Mindestrichtlinien, die das Installationsprogramm für die automatische Bereitstellung von Ressourcen benötigt, finden Sie unterMinimale 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 Verwaltung von Zugriffsschlüsseln für IAM IAM Benutzer im 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 im IAMBenutzerhandbuch.
-
-
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
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
-
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 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.
Erstellen Sie eine Umgebungsdatei
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
oderdocker run
Befehl verwenden, um Umgebungsvariablen im Docker-Container festzulegen, oder Sie können die Variablen in einem environment
Blockdocker-compose.yml
Datei festlegen.
-
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 GNU Nano zu verwenden, um die Datei
.env
im aktuellen Verzeichnis zu erstellen.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
. 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 und fügt eine Richtlinie mit dem Namen hinzuGreengrassV2TokenExchangeRole
Zugriff. Weitere Informationen finden Sie unter Autorisieren Sie Kerngeräte für die Interaktion mit Diensten AWS. -
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. Weitere Informationen finden Sie unter
Anmerkung
Sie können die
DEPLOY_DEV_TOOLS
Umgebungsvariable auf setzen,true
um die CLIGreengrass-Komponente bereitzustellen, mit der Sie benutzerdefinierte Komponenten innerhalb des Docker-Containers entwickeln können. 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
Dieses Tutorial zeigt Ihnen, wie Sie das Docker-Image starten, das Sie in einem Docker-Container erstellt haben. Sie können den Docker CLI oder den Docker Compose verwenden, CLI um das AWS IoT Greengrass Core-Software-Image in einem Docker-Container auszuführen.
Nächste Schritte
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 einer Komponente auf Ihrem Gerät unter Tutorial: Erste Schritte mit AWS IoT Greengrass V2
Anmerkung
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 Anfügen einer interaktiven Shell an den Docker-Container.
Die AWS IoT Greengrass Core-Protokolldatei wird aufgerufen greengrass.log
und befindet sich in.
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:
/logs/greengrass/v2
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
Protokollverzeichnis auf dem Host 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 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
Informationen zur Behebung von Problemen bei der Ausführung AWS IoT Greengrass in einem Docker-Container finden Sie unter. Fehlerbehebung bei AWS IoT Greengrass in einem Docker-Container