Erstellen des AWS IoT Greengrass Container-Images aus einer Dockerfile-Datei - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen des AWS IoT Greengrass Container-Images aus einer Dockerfile-Datei

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

Bevor Sie ein -AWS IoT GreengrassContainer-Image erstellen, müssen Sie Ihre Dockerfile so konfigurieren, dass sie die Version der -AWS IoT GreengrassCore-Software auswählt, die Sie installieren möchten. Sie können auch Umgebungsvariablen konfigurieren, um auszuwählen, wie Ressourcen während der Installation bereitgestellt und andere Installationsoptionen angepasst werden sollen. In diesem Abschnitt wird beschrieben, wie Sie ein AWS IoT Greengrass Docker-Image aus einer Dockerfile konfigurieren und erstellen.

Herunterladen des Dockerfile-Pakets

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

AWS Greengrass Docker-Repository

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.

Angeben der AWS IoT Greengrass Core-Softwareversion

Verwenden Sie das folgende Build-Argument im Dockerfile, 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 AWS IoT Greengrass Core-Software.

GREENGRASS_RELEASE_VERSION

Die Version der -AWS IoT GreengrassCore-Software. Standardmäßig lädt die Dockerfile die neueste verfügbare Version des Greengrass-Kerns herunter. Legen Sie den Wert auf die Version des Kerns fest, die Sie herunterladen möchten.

Festlegen von Umgebungsvariablen

Mit Umgebungsvariablen können Sie anpassen, wie 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 verwenden, docker run um Ihren Container zu starten, übergeben Sie Umgebungsvariablen als Argumente im Befehl oder legen Sie Umgebungsvariablen in einer Umgebungsvariablendatei fest und übergeben Sie die Datei dann als Argument. Weitere Informationen zum Festlegen von Umgebungsvariablen in Docker finden Sie in den Umgebungsvariablen in der Docker-Dokumentation.

  • Wenn Sie docker-compose up zum Starten Ihres Containers verwenden, legen Sie Umgebungsvariablen in einer Umgebungsvariablendatei fest und übergeben Sie die Datei dann als Argument. Weitere Informationen zum Festlegen von Umgebungsvariablen in Compose finden Sie in der Docker-Dokumentation.

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 an alle PIDs in der PID-Gruppe, sodass die AWS IoT Greengrass Core-Software ordnungsgemäß heruntergefahren werden kann, wenn der Docker-Container gestoppt wird.

GGC_ROOT_PATH

(Optional) Der Pfad zum Ordner innerhalb des Containers, der als Root für die AWS IoT Greengrass Core-Software verwendet werden soll.

Standard: /greengrass/v2

PROVISION

(Optional) Bestimmt, ob der AWS IoT Greengrass Core AWS Ressourcen bereitstellt.

Standard: false

AWS_REGION

(Optional) Die AWS-Region, die die AWS IoT Greengrass -Core-Software zum Abrufen oder Erstellen der erforderlichen AWS Ressourcen verwendet.

Standard: us-east-1.

THING_NAME

(Optional) Der Name des AWS IoT Objekts, das Sie als dieses Core-Gerät registrieren. Wenn das Objekt mit diesem Namen in Ihrem nicht vorhanden istAWS-Konto, erstellt die AWS IoT Greengrass Core-Software es.

Sie müssen angebenPROVISION=true, um dieses Argument anzuwenden.

Standard: GreengrassV2IotThing_ plus eine zufällige UUID.

THING_GROUP_NAME

(Optional) Der Name der AWS IoT Objektgruppe, zu der Sie die dieses Core-Geräts hinzufügen AWS IoT Wenn eine Bereitstellung auf diese Objektgruppe abzielt, erhalten diese und andere Core-Geräte in dieser Gruppe diese Bereitstellung, wenn sie eine Verbindung zu herstellenAWS IoT Greengrass. Wenn die Objektgruppe mit diesem Namen in Ihrem nicht vorhanden istAWS-Konto, erstellt die AWS IoT Greengrass Core-Software sie.

Sie müssen angebenPROVISION=true, um dieses Argument anzuwenden.

TES_ROLE_NAME

(Optional) Der Name der IAM-Rolle, die zum Abrufen von AWS Anmeldeinformationen verwendet werden soll, mit denen das Greengrass-Kerngerät mit -AWSServices interagieren kann. Wenn die Rolle mit diesem Namen in Ihrem nicht vorhanden istAWS-Konto, erstellt die AWS IoT Greengrass Core-Software sie mit 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.

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-Kerngerät bereitstellt. Wenn der Rollenalias mit diesem Namen in Ihrem nicht vorhanden istAWS-Konto, erstellt die -AWS IoT GreengrassCore-Software ihn 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 Systemgruppe, die die AWS IoT Greengrass Core-Software zum Ausführen von Komponenten verwendet. Geben Sie den Benutzer und die Gruppe durch einen Doppelpunkt getrennt an. Die Gruppe ist optional. Sie können beispielsweise ggc_user:ggc_group oder ggc_user angeben.

  • Wenn Sie als Stamm ausführen, wird 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 ggc_user oder ggc_group nicht vorhanden sind, erstellt die Software sie.

  • Wenn Sie 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.

DEPLOY_DEV_TOOLS

Definiert, ob die Greengrass-CLI-Komponente im Container-Image heruntergeladen und bereitgestellt werden soll. Sie können die Greengrass-CLI verwenden, um Komponenten lokal zu entwickeln und zu debuggen.

Wichtig

Wir empfehlen, diese Komponente nur in Entwicklungsumgebungen und nicht in Produktionsumgebungen zu verwenden. Diese Komponente bietet Zugriff auf Informationen und Abläufe, 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.

Standard: false

INIT_CONFIG

(Optional) Der Pfad zur Konfigurationsdatei, die zum Installieren der AWS IoT Greengrass Core-Software verwendet werden soll. Mit dieser Option können Sie neue Greengrass-Core-Geräte mit einer bestimmten Kernkonfiguration einrichten oder manuell bereitgestellte Ressourcen angeben. Sie müssen Ihre Konfigurationsdatei in dem Pfad mounten, den Sie in diesem Argument angeben.

TRUSTED_PLUGIN

Diese Funktion ist für v2.4.0 und höher der Greengrass-Kernkomponente verfügbar.

(Optional) Der Pfad zu einer JAR-Datei, die als vertrauenswürdiges Plugin geladen werden soll. Verwenden Sie diese Option, um Bereitstellungs-Plugin-JAR-Dateien bereitzustellen, z. B. um mit Flottenbereitstellung oder benutzerdefinierter Bereitstellung zu installieren.

THING_POLICY_NAME

Diese Funktion ist für v2.4.0 und höher der Greengrass-Kernkomponente verfügbar.

(Optional) Der Name der AWS IoT Richtlinie, die an das AWS IoT Objektzertifikat dieses Core-Geräts angehängt werden soll. Wenn die AWS IoT Richtlinie mit diesem Namen in Ihrer AWS IoT Greengrass Core-Software nicht vorhanden ist, erstellt AWS-Konto sie.

Sie müssen angebenPROVISION=true, um dieses Argument anzuwenden.

Anmerkung

Die AWS IoT Greengrass -Core-Software erstellt standardmäßig eine zulässige AWS IoT Richtlinie. Sie können diese Richtlinie einschränken oder eine benutzerdefinierte Richtlinie erstellen, in der Sie die Berechtigungen für Ihren Anwendungsfall einschränken. Weitere Informationen finden Sie unter Minimale AWS IoT Richtlinie für -AWS IoT Greengrass V2Core-Geräte.

Angeben der zu installierenden Abhängigkeiten

Die RUN-Anweisung im AWS IoT Greengrass Dockerfile bereitet die Containerumgebung vor, um das AWS IoT Greengrass Core-Softwareinstallationsprogramm auszuführen. Sie können die Abhängigkeiten anpassen, die installiert werden, bevor das AWS IoT Greengrass Core-Softwareinstallationsprogramm im Docker-Container ausgeführt wird.

Erstellen des AWS IoT Greengrass Images

Verwenden Sie das AWS IoT Greengrass Dockerfile, um ein -AWS IoT GreengrassContainer-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 auch die Docker-CLI verwenden, um das Image zu 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 die konfigurierte Dockerfile enthält.

    cd download-directory/aws-greengrass-docker-nucleus-version
  2. Führen Sie den folgenden Befehl aus, um das AWS IoT Greengrass Container-Image aus der 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
  2. 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 GreengrassCore-Software installiert. Sie können die -AWS IoT GreengrassCore-Software jetzt in einem Docker-Container ausführen.