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 einen Docker-Container aus
Sie können AWS IoT Greengrass Komponenten so konfigurieren, dass sie einen Docker-Container
-
Öffentliche und private Image-Repositorys in Amazon Elastic Container Registry (AmazonECR)
-
Öffentliches Docker Hub-Repository
-
Vertrauenswürdiges öffentliches Docker-Register
-
S3-Bucket
Fügen Sie in Ihrer benutzerdefinierten Komponente das Docker-Image URI als Artefakt ein, um das Image abzurufen und auf dem Kerngerät auszuführen. Für Amazon ECR - und Docker Hub-Images können Sie die Docker Application Manager-Komponente verwenden, um die Images herunterzuladen und Anmeldeinformationen für private ECR Amazon-Repositorys zu verwalten.
Themen
- Voraussetzungen
- Führen Sie einen Docker-Container von einem öffentlichen Image in Amazon ECR oder Docker Hub aus
- Führen Sie einen Docker-Container von einem privaten Image in Amazon aus ECR
- Führen Sie einen Docker-Container von einem Image in Amazon S3 aus
- Verwenden Sie die Interprozesskommunikation in Docker-Container-Komponenten
- Verwenden Sie AWS Anmeldeinformationen in Docker-Container-Komponenten (Linux)
- Verwenden Sie den Stream-Manager in Docker-Container-Komponenten (Linux)
Voraussetzungen
Um einen Docker-Container in einer Komponente auszuführen, benötigen Sie Folgendes:
-
Ein Greengrass-Core-Gerät. Falls Sie noch keines haben, beachten Sie die Informationen unter Tutorial: Erste Schritte mit AWS IoT Greengrass V2.
-
Docker Engine
1.9.1 oder höher ist auf dem Greengrass-Core-Gerät installiert. Version 20.10 ist die neueste Version, von der bestätigt wurde, dass sie mit der Core-Software funktioniert. AWS IoT Greengrass Sie müssen Docker direkt auf dem Kerngerät installieren, bevor Sie Komponenten bereitstellen, auf denen Docker-Container ausgeführt werden. Tipp
Sie können das Kerngerät auch so konfigurieren, dass die Docker Engine bei der Installation der Komponente installiert wird. Das folgende Installationsskript installiert beispielsweise die Docker Engine, bevor das Docker-Image geladen wird. Dieses Installationsskript funktioniert auf Debian-basierten Linux-Distributionen wie Ubuntu. Wenn Sie die Komponente für die Installation von Docker Engine mit diesem Befehl konfigurieren, müssen Sie möglicherweise
true
im Lifecycle-Skript auf einstellen,RequiresPrivilege
um die Installation und die Befehle auszuführen.docker
Weitere Informationen finden Sie unter AWS IoT Greengrass Referenz zum Komponenten-Rezept.apt-get install docker-ce docker-ce-cli containerd.io && docker load -i {artifacts:path}/
hello-world.tar
-
Der Systembenutzer, der eine Docker-Container-Komponente ausführt, muss über Root- oder Administratorrechte verfügen, oder Sie müssen Docker so konfigurieren, dass es als Benutzer ohne Root- oder Administratorrechte ausgeführt wird.
-
Auf Linux-Geräten können Sie der Gruppe einen Benutzer hinzufügen, um Befehle ohne Befehle
docker
aufzurufen.docker
sudo
-
Auf Windows-Geräten können Sie der
docker-users
Gruppe einen Benutzer hinzufügen, umdocker
Befehle ohne Administratorrechte aufzurufen.
-
-
Dateien, auf die die Docker-Container-Komponente zugreift, die als Volume im Docker-Container gemountet
ist. -
Wenn Sie die AWS IoT Greengrass Core-Software für die Verwendung eines Netzwerk-Proxys konfigurieren, müssen Sie Docker für die Verwendung desselben Proxyservers konfigurieren.
Zusätzlich zu diesen Anforderungen müssen Sie auch die folgenden Anforderungen erfüllen, wenn sie für Ihre Umgebung gelten:
-
Um Docker Compose
zum Erstellen und Starten Ihrer Docker-Container zu verwenden, installieren Sie Docker Compose auf Ihrem Greengrass-Core-Gerät und laden Sie Ihre Docker Compose-Datei in einen S3-Bucket hoch. Sie müssen Ihre Compose-Datei in einem S3-Bucket im selben und wie AWS-Konto die Komponente speichern. AWS-Region Ein Beispiel, das den docker-compose up
Befehl in einer benutzerdefinierten Komponente verwendet, finden Sie unterFühren Sie einen Docker-Container von einem öffentlichen Image in Amazon ECR oder Docker Hub aus. -
Wenn Sie AWS IoT Greengrass hinter einem Netzwerk-Proxy laufen, konfigurieren Sie den Docker-Daemon für die Verwendung eines Proxyservers
. -
Wenn Ihre Docker-Images in Amazon ECR oder Docker Hub gespeichert sind, fügen Sie die Komponente Docker Component Manager als Abhängigkeit in Ihre Docker-Container-Komponente ein. Sie müssen den Docker-Daemon auf dem Kerngerät starten, bevor Sie Ihre Komponente bereitstellen.
Fügen Sie das Bild auch URIs als Komponentenartefakte hinzu. Das Bild URIs muss das Format haben,
docker:
das in den folgenden Beispielen gezeigt wird:registry
/image
[:tag|@digest
]-
Privates ECR Amazon-Bild:
docker:
account-id
.dkr.ecr.region
.amazonaws.com/repository
/image
[:tag|@digest
] -
Öffentliches ECR Amazon-Bild:
docker:public.ecr.aws/
repository
/image
[:tag|@digest
] -
Öffentliches Docker Hub-Bild:
docker:
name
[:tag|@digest
]
Weitere Informationen zum Ausführen von Docker-Containern aus Images, die in öffentlichen Repositorys gespeichert sind, finden Sie unter. Führen Sie einen Docker-Container von einem öffentlichen Image in Amazon ECR oder Docker Hub aus
-
-
Wenn Ihre Docker-Images in einem ECR privaten Amazon-Repository gespeichert sind, müssen Sie die Token-Exchange-Servicekomponente als Abhängigkeit in die Docker-Container-Komponente aufnehmen. Außerdem muss die Greengrass-Geräterolle die
ecr:GetDownloadUrlForLayer
Aktionenecr:GetAuthorizationToken
ecr:BatchGetImage
, und zulassen, wie in der folgenden IAM Beispielrichtlinie gezeigt.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
Informationen zum Ausführen von Docker-Containern aus Images, die in einem ECR privaten Amazon-Repository gespeichert sind, finden Sie unterFühren Sie einen Docker-Container von einem privaten Image in Amazon aus ECR.
-
Um Docker-Images verwenden zu können, die in einem ECR privaten Amazon-Repository gespeichert sind, muss sich das private Repository auf demselben Gerät befinden AWS-Region wie das Kerngerät.
-
Wenn Ihre Docker-Images oder Compose-Dateien in einem S3-Bucket gespeichert sind, muss die Greengrass-Geräterolle die
s3:GetObject
Berechtigung gewähren, Kerngeräten das Herunterladen der Images als Komponentenartefakte zu gestatten, wie in der folgenden IAM Beispielrichtlinie gezeigt.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetObject" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
Informationen zum Ausführen von Docker-Containern aus in Amazon S3 gespeicherten Bildern finden Sie unterFühren Sie einen Docker-Container von einem Image in Amazon S3 aus.
-
Um Interprocess Communication (IPC), AWS Credentials oder Stream Manager in Ihrer Docker-Container-Komponente zu verwenden, müssen Sie bei der Ausführung des Docker-Containers zusätzliche Optionen angeben. Weitere Informationen finden Sie hier:
Führen Sie einen Docker-Container von einem öffentlichen Image in Amazon ECR oder Docker Hub aus
In diesem Abschnitt wird beschrieben, wie Sie eine benutzerdefinierte Komponente erstellen können, die Docker Compose verwendet, um einen Docker-Container aus Docker-Images auszuführen, die auf Amazon ECR und Docker Hub gespeichert sind.
Um einen Docker-Container mit Docker Compose auszuführen
-
Erstellen Sie eine Docker Compose-Datei und laden Sie sie in einen Amazon S3 S3-Bucket hoch. Stellen Sie sicher, dass die Greengrass-Geräterolle die
s3:GetObject
Erlaubnis erteilt, dem Gerät den Zugriff auf die Compose-Datei zu ermöglichen. Die im folgenden Beispiel gezeigte Compose-Beispieldatei enthält das Amazon CloudWatch Agent-Image von Amazon ECR und das My SQL Image von Docker Hub.version: "3" services: cloudwatchagent: image: "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest" mysql: image: "mysql:8.0"
-
Erstellen Sie eine benutzerdefinierte Komponente auf Ihrem AWS IoT Greengrass Kerngerät. Das im folgenden Beispiel gezeigte Beispielrezept hat die folgenden Eigenschaften:
-
Die Docker-Anwendungsmanager-Komponente als Abhängigkeit. Diese Komponente ermöglicht AWS IoT Greengrass das Herunterladen von Bildern aus öffentlichen Amazon ECR - und Docker Hub-Repositorys.
-
Ein Komponentenartefakt, das ein Docker-Image in einem öffentlichen ECR Amazon-Repository spezifiziert.
-
Ein Komponentenartefakt, das ein Docker-Image in einem öffentlichen Docker Hub-Repository spezifiziert.
-
Ein Komponentenartefakt, das die Docker Compose-Datei spezifiziert, die Container für die Docker-Images enthält, die Sie ausführen möchten.
-
Ein Lifecycle-Run-Skript, das Docker-Compose verwendet, um
einen Container aus den angegebenen Images zu erstellen und zu starten.
Anmerkung
Um Interprozesskommunikation (IPC), AWS Anmeldeinformationen oder Stream Manager in Ihrer Docker-Container-Komponente zu verwenden, müssen Sie bei der Ausführung des Docker-Containers zusätzliche Optionen angeben. Weitere Informationen finden Sie hier:
-
-
Testen Sie die Komponente, um sicherzustellen, dass sie wie erwartet funktioniert.
Wichtig
Sie müssen den Docker-Daemon installieren und starten, bevor Sie die Komponente bereitstellen.
Nachdem Sie die Komponente lokal bereitgestellt haben, können Sie den Befehl docker container ls
ausführen, um zu überprüfen, ob Ihr Container ausgeführt wird. docker container ls
-
Wenn die Komponente bereit ist, laden Sie die Komponente hoch, AWS IoT Greengrass um sie auf anderen Kerngeräten bereitzustellen. Weitere Informationen finden Sie unter Veröffentlichen Sie Komponenten zur Bereitstellung auf Ihren Kerngeräten.
Führen Sie einen Docker-Container von einem privaten Image in Amazon aus ECR
In diesem Abschnitt wird beschrieben, wie Sie eine benutzerdefinierte Komponente erstellen können, die einen Docker-Container aus einem Docker-Image ausführt, das in einem privaten Repository in Amazon gespeichert ist. ECR
Um einen Docker-Container auszuführen
-
Erstellen Sie eine benutzerdefinierte Komponente auf Ihrem AWS IoT Greengrass Kerngerät. Verwenden Sie das folgende Beispielrezept, das die folgenden Eigenschaften hat:
-
Die Docker-Anwendungsmanager-Komponente als Abhängigkeit. Diese Komponente ermöglicht die Verwaltung von Anmeldeinformationen AWS IoT Greengrass zum Herunterladen von Bildern aus privaten Repositorys.
-
Die Token-Exchange-Dienstkomponente als Abhängigkeit. Diese Komponente ermöglicht AWS IoT Greengrass das Abrufen von AWS Anmeldeinformationen für die Interaktion mit AmazonECR.
-
Ein Komponentenartefakt, das ein Docker-Image in einem privaten ECR Amazon-Repository spezifiziert.
-
Ein Lifecycle-Run-Skript, das Docker Run
verwendet, um einen Container aus dem Image zu erstellen und zu starten.
Anmerkung
Um Interprocess Communication (IPC), AWS Credentials oder Stream Manager in Ihrer Docker-Container-Komponente zu verwenden, müssen Sie bei der Ausführung des Docker-Containers zusätzliche Optionen angeben. Weitere Informationen finden Sie hier:
-
-
Testen Sie die Komponente, um sicherzustellen, dass sie wie erwartet funktioniert.
Wichtig
Sie müssen den Docker-Daemon installieren und starten, bevor Sie die Komponente bereitstellen.
Nachdem Sie die Komponente lokal bereitgestellt haben, können Sie den Befehl docker container ls
ausführen, um zu überprüfen, ob Ihr Container ausgeführt wird. docker container ls
-
Laden Sie die Komponente hoch, AWS IoT Greengrass um sie auf anderen Kerngeräten bereitzustellen. Weitere Informationen finden Sie unter Veröffentlichen Sie Komponenten zur Bereitstellung auf Ihren Kerngeräten.
Führen Sie einen Docker-Container von einem Image in Amazon S3 aus
In diesem Abschnitt wird beschrieben, wie Sie einen Docker-Container in einer Komponente von einem Docker-Image aus ausführen können, das in Amazon S3 gespeichert ist.
So führen Sie einen Docker-Container in einer Komponente aus einem Image in Amazon S3 aus
-
Führen Sie den Befehl docker save
aus, um ein Backup eines Docker-Containers zu erstellen. Sie stellen dieses Backup als Komponentenartefakt bereit, auf dem der Container ausgeführt werden kann. AWS IoT Greengrass hello-world
Ersetzen Sie es durch den Namen des Images undhello-world.tar
durch den Namen der zu erstellenden Archivdatei.docker save
hello-world
>artifacts/com.example.MyDockerComponent/1.0.0/hello-world.tar
-
Erstellen Sie eine benutzerdefinierte Komponente auf Ihrem AWS IoT Greengrass Kerngerät. Verwenden Sie das folgende Beispielrezept, das die folgenden Eigenschaften hat:
-
Ein Lifecycle-Installationsskript, das Docker Load
verwendet, um ein Docker-Image aus einem Archiv zu laden. -
Ein Lifecycle-Run-Skript, das Docker Run
verwendet, um einen Container aus dem Image zu erstellen und zu starten. Die --rm
Option bereinigt den Container, wenn er beendet wird.
Anmerkung
Um Interprocess Communication (IPC), AWS Credentials oder Stream Manager in Ihrer Docker-Container-Komponente zu verwenden, müssen Sie bei der Ausführung des Docker-Containers zusätzliche Optionen angeben. Weitere Informationen finden Sie hier:
-
-
Testen Sie die Komponente, um sicherzustellen, dass sie wie erwartet funktioniert.
Nachdem Sie die Komponente lokal bereitgestellt haben, können Sie den Befehl docker container ls
ausführen, um zu überprüfen, ob Ihr Container ausgeführt wird. docker container ls
-
Wenn die Komponente bereit ist, laden Sie das Docker-Image-Archiv in einen S3-Bucket hoch und fügen Sie es dem URI Komponentenrezept hinzu. Anschließend können Sie die Komponente hochladen, AWS IoT Greengrass um sie auf anderen Kerngeräten bereitzustellen. Weitere Informationen finden Sie unter Veröffentlichen Sie Komponenten zur Bereitstellung auf Ihren Kerngeräten.
Wenn Sie fertig sind, sollte das Komponentenrezept wie im folgenden Beispiel aussehen.
Verwenden Sie die Interprozesskommunikation in Docker-Container-Komponenten
Sie können die Greengrass-Bibliothek interprocess communication (IPC) in der verwenden, AWS IoT Device SDK um mit dem Greengrass-Kern, anderen Greengrass-Komponenten und zu kommunizieren. AWS IoT Core Weitere Informationen finden Sie unter Verwenden Sie den AWS IoT Device SDK , um mit dem Greengrass-Kern und anderen Komponenten zu kommunizieren und AWS IoT Core.
Zur Verwendung IPC in einer Docker-Container-Komponente müssen Sie den Docker-Container mit den folgenden Parametern ausführen:
-
Hängen Sie den IPC Socket in den Container ein. Der Greengrass-Kern stellt den IPC Socket-Dateipfad in der
AWS_GG_NUCLEUS_DOMAIN_SOCKET_FILEPATH_FOR_COMPONENT
Umgebungsvariablen bereit. -
Stellen Sie die
AWS_GG_NUCLEUS_DOMAIN_SOCKET_FILEPATH_FOR_COMPONENT
UmgebungsvariablenSVCUID
und auf die Werte ein, die der Greengrass-Kern für Komponenten bereitstellt. Ihre Komponente verwendet diese Umgebungsvariablen, um Verbindungen zum Greengrass-Nucleus zu authentifizieren.
Beispielrezept: Eine MQTT Nachricht veröffentlichen in AWS IoT Core (Python)
Das folgende Rezept definiert ein Beispiel für eine Docker-Container-Komponente, in der eine MQTT Nachricht veröffentlicht wird. AWS IoT Core Das Rezept hat die folgenden Eigenschaften:
-
Eine Autorisierungsrichtlinie (
accessControl
), die es der Komponente ermöglicht, MQTT Nachrichten zu allen AWS IoT Core Themen zu veröffentlichen. Weitere Informationen finden Sie unter Autorisieren Sie Komponenten zur Ausführung von Vorgängen IPC und AWS IoT Core MQTTIPCAutorisierung. -
Ein Komponentenartefakt, das ein Docker-Image als TAR Archiv in Amazon S3 spezifiziert.
-
Ein Lifecycle-Installationsskript, das das Docker-Image aus dem Archiv lädt. TAR
-
Ein Lifecycle-Run-Skript, das einen Docker-Container vom Image aus ausführt. Der Befehl Docker run
hat die folgenden Argumente: -
Das
-v
Argument mountet den IPC Greengrass-Socket in den Container. -
Die ersten beiden
-e
Argumente legen die erforderlichen Umgebungsvariablen im Docker-Container fest. -
Die zusätzlichen
-e
Argumente legen die in diesem Beispiel verwendeten Umgebungsvariablen fest. -
Das
--rm
Argument bereinigt den Container, wenn er beendet wird.
-
Verwenden Sie AWS Anmeldeinformationen in Docker-Container-Komponenten (Linux)
Sie können die Token-Exchange-Dienstkomponente verwenden, um mit AWS Diensten in Greengrass-Komponenten zu interagieren. Diese Komponente stellt AWS Anmeldeinformationen aus der Token-Exchange-Rolle des Kerngeräts mithilfe eines lokalen Containerservers bereit. Weitere Informationen finden Sie unter Interagieren Sie mit AWS Diensten.
Anmerkung
Das Beispiel in diesem Abschnitt funktioniert nur auf Linux-Core-Geräten.
Um AWS Anmeldeinformationen aus dem Token-Exchange-Dienst in einer Docker-Container-Komponente zu verwenden, müssen Sie den Docker-Container mit den folgenden Parametern ausführen:
-
Stellen Sie mithilfe des Arguments Zugriff auf das Host-Netzwerk bereit.
--network=host
Diese Option ermöglicht es dem Docker-Container, eine Verbindung zum lokalen Token-Austauschdienst herzustellen, um AWS Anmeldeinformationen abzurufen. Dieses Argument funktioniert nur auf Docker für Linux.Warnung
Diese Option gewährt dem Container Zugriff auf alle lokalen Netzwerkschnittstellen auf dem Host, sodass diese Option weniger sicher ist, als wenn Sie Docker-Container ohne diesen Zugriff auf das Host-Netzwerk ausführen. Berücksichtigen Sie dies, wenn Sie Docker-Container-Komponenten entwickeln und ausführen, die diese Option verwenden. Weitere Informationen finden Sie unter Network: host
in der Docker-Dokumentation. -
Stellen Sie die
AWS_CONTAINER_AUTHORIZATION_TOKEN
UmgebungsvariablenAWS_CONTAINER_CREDENTIALS_FULL_URI
und auf die Werte ein, die der Greengrass-Kern für Komponenten bereitstellt. AWS SDKsverwenden Sie diese Umgebungsvariablen, um AWS Anmeldeinformationen abzurufen.
Beispielrezept: S3-Buckets in einer Docker-Container-Komponente auflisten (Python)
Das folgende Rezept definiert ein Beispiel für eine Docker-Container-Komponente, die die S3-Buckets in Ihrem auflistet. AWS-Konto Das Rezept hat die folgenden Eigenschaften:
-
Die Token-Exchange-Dienstkomponente als Abhängigkeit. Diese Abhängigkeit ermöglicht es der Komponente, AWS Anmeldeinformationen für die Interaktion mit anderen AWS Diensten abzurufen.
-
Ein Komponentenartefakt, das ein Docker-Image als Tar-Archiv in Amazon S3 spezifiziert.
-
Ein Lifecycle-Installationsskript, das das Docker-Image aus dem Archiv lädt. TAR
-
Ein Lifecycle-Run-Skript, das einen Docker-Container vom Image aus ausführt. Der Befehl Docker run
hat die folgenden Argumente: -
Das
--network=host
Argument gewährt dem Container Zugriff auf das Host-Netzwerk, sodass der Container eine Verbindung zum Token-Austauschdienst herstellen kann. -
Das
-e
Argument legt die erforderlichen Umgebungsvariablen im Docker-Container fest. -
Das
--rm
Argument bereinigt den Container, wenn er beendet wird.
-
Verwenden Sie den Stream-Manager in Docker-Container-Komponenten (Linux)
Sie können die Stream-Manager-Komponente verwenden, um Datenströme in Greengrass-Komponenten zu verwalten. Diese Komponente ermöglicht es Ihnen, Datenströme zu verarbeiten und umfangreiche IoT-Daten an die AWS Cloud zu übertragen. AWS IoT Greengrass stellt einen Stream-Manager bereitSDK, mit dem Sie mit der Stream-Manager-Komponente interagieren. Weitere Informationen finden Sie unter Datenströme auf Greengrass-Kerngeräten verwalten.
Anmerkung
Das Beispiel in diesem Abschnitt funktioniert nur auf Linux-Core-Geräten.
Um den Stream-Manager SDK in einer Docker-Container-Komponente zu verwenden, müssen Sie den Docker-Container mit den folgenden Parametern ausführen:
-
Stellen Sie mithilfe des Arguments Zugriff auf das Host-Netzwerk bereit.
--network=host
Diese Option ermöglicht es dem Docker-Container, über eine lokale TLS Verbindung mit der Stream-Manager-Komponente zu interagieren. Dieses Argument funktioniert nur auf Docker für LinuxWarnung
Diese Option gewährt dem Container Zugriff auf alle lokalen Netzwerkschnittstellen auf dem Host, sodass diese Option weniger sicher ist, als wenn Sie Docker-Container ohne diesen Zugriff auf das Host-Netzwerk ausführen. Berücksichtigen Sie dies, wenn Sie Docker-Container-Komponenten entwickeln und ausführen, die diese Option verwenden. Weitere Informationen finden Sie unter Network: host
in der Docker-Dokumentation. -
Wenn Sie die Stream-Manager-Komponente so konfigurieren, dass eine Authentifizierung erforderlich ist, was das Standardverhalten ist, setzen Sie die
AWS_CONTAINER_CREDENTIALS_FULL_URI
Umgebungsvariable auf den Wert, den der Greengrass-Nucleus den Komponenten zur Verfügung stellt. Weitere Informationen finden Sie unter Stream Manager-Konfiguration. -
Wenn Sie die Stream-Manager-Komponente so konfigurieren, dass sie einen nicht standardmäßigen Port verwendet, verwenden Sie interprocess communication (IPC), um den Port aus der Stream Manager-Komponentenkonfiguration abzurufen. Sie müssen den Docker-Container mit zusätzlichen zu verwendenden Optionen ausführen. IPC Weitere Informationen finden Sie hier:
Beispielrezept: Streamen Sie eine Datei in einen S3-Bucket in einer Docker-Container-Komponente (Python)
Das folgende Rezept definiert ein Beispiel für eine Docker-Container-Komponente, die eine Datei erstellt und sie in einen S3-Bucket streamt. Das Rezept hat die folgenden Eigenschaften:
-
Die Stream-Manager-Komponente als Abhängigkeit. Diese Abhängigkeit ermöglicht es der Komponente, den Stream-Manager für die Interaktion mit der Stream-Manager-Komponente SDK zu verwenden.
-
Ein Komponentenartefakt, das ein Docker-Image als TAR Archiv in Amazon S3 spezifiziert.
-
Ein Lifecycle-Installationsskript, das das Docker-Image aus dem Archiv lädt. TAR
-
Ein Lifecycle-Run-Skript, das einen Docker-Container vom Image aus ausführt. Der Befehl Docker run
hat die folgenden Argumente: -
Das
--network=host
Argument ermöglicht dem Container den Zugriff auf das Host-Netzwerk, sodass der Container eine Verbindung zur Stream Manager-Komponente herstellen kann. -
Das erste
-e
Argument legt die erforderlicheAWS_CONTAINER_AUTHORIZATION_TOKEN
Umgebungsvariable im Docker-Container fest. -
Die zusätzlichen
-e
Argumente legen die in diesem Beispiel verwendeten Umgebungsvariablen fest. -
Das
-v
Argument hängt den Arbeitsordner der Komponente im Container ein. In diesem Beispiel wird eine Datei im Arbeitsordner erstellt, um diese Datei mithilfe des Stream-Managers auf Amazon S3 hochzuladen. -
Das
--rm
Argument bereinigt den Container, wenn er beendet wird.
-