Bereitstellen von AWS IoT Greengrass Komponenten auf Geräten - 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.

Bereitstellen von AWS IoT Greengrass Komponenten auf Geräten

Sie können verwendenAWS IoT Greengrass, um Komponenten auf Geräten oder Gerätegruppen bereitzustellen. Sie verwenden Bereitstellungen, um die Komponenten und Konfigurationen zu definieren, die an die Geräte gesendet werden. AWS IoT Greengrass stellt für Ziele , AWS IoT Objekte oder Objektgruppen bereit, die Greengrass-Core-Geräte darstellen. AWS IoT Greengrass verwendet AWS IoT Core Aufträge zur Bereitstellung auf Ihren Core-Geräten. Sie können konfigurieren, wie der Auftrag auf Ihren Geräten bereitgestellt wird.

Bereitstellungen von Core-Geräten

Jedes Core-Gerät führt die Komponenten der Bereitstellungen für dieses Gerät aus. Eine neue Bereitstellung auf demselben Ziel überschreibt die vorherige Bereitstellung auf das Ziel. Wenn Sie eine Bereitstellung erstellen, definieren Sie die Komponenten und Konfigurationen, die auf die vorhandene Software des Core-Geräts angewendet werden sollen.

Wenn Sie eine Bereitstellung für ein Ziel überarbeiten, ersetzen Sie die Komponenten aus der vorherigen Revision durch die Komponenten in der neuen Revision. Sie stellen beispielsweise die Geheimer Manager Komponenten Protokollmanager und für die Objektgruppe bereitTestGroup. Anschließend erstellen Sie eine weitere Bereitstellung für TestGroup, die nur die Secret-Manager-Komponente angibt. Daher führen die Core-Geräte in dieser Gruppe den Protokollmanager nicht mehr aus.

Auflösung der Plattformabhängigkeit

Wenn ein Core-Gerät eine Bereitstellung empfängt, überprüft es, ob die Komponenten mit dem Core-Gerät kompatibel sind. Wenn Sie beispielsweise auf Firehose einem Windows-Ziel bereitstellen, schlägt die Bereitstellung fehl.

Auflösung der Komponentenabhängigkeit

Das Core-Gerät prüft auch, ob alle Komponentenabhängigkeiten mit Versionseinschränkungen für Bereitstellungen anderer Komponenten in dieser Objektgruppe kompatibel sind. Wenn sich die Versionseinschränkungen für eine Komponente überschneiden, verwendet Greengrass die am stärksten anwendbare Version der Komponente. Beispielsweise:

  • Sie stellen Komponente A in bereitTestGroup. Komponente A hängt von den com.example.PythonRuntime Komponentenversionen 3.5 bis 3.10 ab.

  • Anschließend stellen Sie Komponente B in bereitTestGroup. Komponente B hängt von den com.example.PythonRuntime Komponentenversionen 3.7 bis 3.8 ab.

Daher stellen die Core-Geräte in TestGroup fest, dass sie Version 3.8 der com.example.PythonRuntime Komponente bereitstellen können, da diese Version die am besten anwendbare Version ist, bei der sich die Versionseinschränkungen überschneiden.

Komponentenabhängigkeiten für Beispielkomponenten.

Anschließend stellen Sie Komponente C in bereitTestGroup. Komponente C hängt von den com.example.PythonRuntime Komponentenversionen 2.6 bis 2.7 ab. Diese Bereitstellung schlägt fehl, da es keine Komponentenversion gibt, die der Einschränkung 2.6–2.7 und 3.7–3.8 entspricht.

Komponentenabhängigkeiten, die zu einer fehlgeschlagenen Bereitstellung führen.

Entfernen eines Geräts aus einer Objektgruppe

Wenn Sie ein Core-Gerät aus einer Objektgruppe entfernen, hängt das Bereitstellungsverhalten der Komponente von der Version des Greengrass-Kerns ab, die auf dem Core-Gerät ausgeführt wird.

2.5.1 and later

Wenn Sie ein Core-Gerät aus einer Objektgruppe entfernen, hängt das Verhalten davon ab, ob die AWS IoT Richtlinie die greengrass:ListThingGroupsForCoreDevice Berechtigung erteilt. Weitere Informationen zu dieser Berechtigung und AWS IoT Richtlinien für -Core-Geräte finden Sie unter Geräteauthentifizierung und -autorisierung für AWS IoT Greengrass.

  • Wenn die AWS IoT Richtlinie diese Berechtigung erteilt

    Wenn Sie ein Core-Gerät aus einer Objektgruppe entfernen, AWS IoT Greengrass entfernt die Komponenten der Objektgruppe, wenn das nächste Mal eine Bereitstellung auf dem Gerät durchgeführt wird. Wenn eine Komponente auf dem Gerät in der nächsten Bereitstellung enthalten ist, wird diese Komponente nicht vom Gerät entfernt.

  • Wenn die AWS IoT Richtlinie diese Berechtigung nicht erteilt

    Wenn Sie ein Core-Gerät aus einer Objektgruppe entfernen, AWS IoT Greengrasslöscht die Komponenten dieser Objektgruppe nicht vom Gerät.

    Um eine Komponente von einem Gerät zu entfernen, verwenden Sie den Befehl deployment create der Greengrass-CLI. Geben Sie die zu entfernende Komponente mit dem --remove -Argument an und geben Sie die Objektgruppe mit dem --groupId -Argument an.

2.5.0

Wenn Sie ein Core-Gerät aus einer Objektgruppe entfernen, AWS IoT Greengrass entfernt die Komponenten der Objektgruppe, wenn das nächste Mal eine Bereitstellung auf dem Gerät durchgeführt wird. Wenn eine Komponente auf dem Gerät in der nächsten Bereitstellung enthalten ist, wird diese Komponente nicht vom Gerät entfernt.

Dieses Verhalten erfordert, dass die AWS IoT Richtlinie des Core-Geräts die -greengrass:ListThingGroupsForCoreDeviceBerechtigung erteilt. Wenn ein Core-Gerät nicht über diese Berechtigung verfügt, kann das Core-Gerät keine Bereitstellungen anwenden. Weitere Informationen finden Sie unter Geräteauthentifizierung und -autorisierung für AWS IoT Greengrass.

2.0.x - 2.4.x

Wenn Sie ein Core-Gerät aus einer Objektgruppe entfernen, AWS IoT Greengrasslöscht die Komponenten dieser Objektgruppe nicht vom Gerät.

Um eine Komponente von einem Gerät zu entfernen, verwenden Sie den Befehl deployment create der Greengrass-CLI. Geben Sie die zu entfernende Komponente mit dem --remove -Argument an und geben Sie die Objektgruppe mit dem --groupId -Argument an.

Bereitstellungen

Bereitstellungen sind kontinuierlich. Wenn Sie eine Bereitstellung erstellen, AWS IoT Greengrass führt die Bereitstellung auf Zielgeräten aus, die online sind. Wenn ein Zielgerät nicht online ist, erhält es die Bereitstellung, wenn es das nächste Mal eine Verbindung zu herstelltAWS IoT Greengrass. Wenn Sie ein Core-Gerät zu einer Ziel-Objektgruppe hinzufügen, AWS IoT Greengrass sendet dem Gerät die neueste Bereitstellung für diese Objektgruppe.

Bevor ein Core-Gerät eine Komponente bereitstellt, benachrichtigt es standardmäßig jede Komponente auf dem Gerät. Greengrass-Komponenten können auf die Benachrichtigung antworten, um die Bereitstellung aufzuschieben. Möglicherweise möchten Sie die Bereitstellung verschieben, wenn das Gerät einen niedrigen Batteriestand hat oder einen Prozess ausführt, der nicht unterbrochen werden kann. Weitere Informationen finden Sie unter Tutorial: Entwickeln einer Greengrass-Komponente, die Komponentenaktualisierungen verzögert. Wenn Sie eine Bereitstellung erstellen, können Sie sie für die Bereitstellung konfigurieren, ohne Komponenten zu benachrichtigen.

Jedes Zielobjekt oder jede Objektgruppe kann jeweils eine Bereitstellung haben. Das bedeutet, dass beim Erstellen einer Bereitstellung für ein Ziel die vorherige Revision der Bereitstellung dieses Ziels AWS IoT Greengrass nicht mehr bereitstellt.

Optionen für die Bereitstellung

Bereitstellungen bieten mehrere Optionen, mit denen Sie steuern können, welche Geräte ein Update erhalten und wie das Update bereitgestellt wird. Wenn Sie eine Bereitstellung erstellen, können Sie die folgenden Optionen konfigurieren:

  • AWS IoT Greengrass -Komponenten

    Definieren Sie die Komponenten, die auf den Zielgeräten installiert und ausgeführt werden sollen. -AWS IoT GreengrassKomponenten sind Softwaremodule, die Sie auf Greengrass-Core-Geräten bereitstellen und ausführen. Geräte erhalten Komponenten nur, wenn die Komponente die Plattform des Geräts unterstützt. Auf diese Weise können Sie auf Gerätegruppen bereitstellen, auch wenn die Zielgeräte auf mehreren Plattformen ausgeführt werden. Wenn eine Komponente die Plattform des Geräts nicht unterstützt, wird die Komponente nicht auf dem Gerät bereitgestellt.

    Sie können benutzerdefinierte Komponenten und AWSvon bereitgestellte Komponenten auf Ihren Geräten bereitstellen. Wenn Sie eine Komponente bereitstellen, AWS IoT Greengrass identifiziert alle Komponentenabhängigkeiten und stellt sie ebenfalls bereit. Weitere Informationen finden Sie unter Entwickeln von AWS IoT Greengrass Komponenten und AWSVon bereitgestellte Komponenten.

    Sie definieren die Versions- und Konfigurationsaktualisierung, die für jede Komponente bereitgestellt werden soll. Das Konfigurationsupdate gibt an, wie die vorhandene Konfiguration der Komponente auf dem Core-Gerät oder die Standardkonfiguration der Komponente geändert werden soll, wenn die Komponente auf dem Core-Gerät nicht vorhanden ist. Sie können angeben, welche Konfigurationswerte auf Standardwerte zurückgesetzt werden sollen, und die neuen Konfigurationswerte, die auf dem Core-Gerät zusammengeführt werden sollen. Wenn ein Core-Gerät Bereitstellungen für verschiedene Ziele empfängt und jede Bereitstellung kompatible Komponentenversionen angibt, wendet das Core-Gerät Konfigurationsaktualisierungen der Reihe nach an, basierend auf dem Zeitstempel der Erstellung der Bereitstellung. Weitere Informationen finden Sie unter Komponentenkonfigurationen aktualisieren.

    Wichtig

    Wenn Sie eine Komponente bereitstellen, AWS IoT Greengrass installiert die neuesten unterstützten Versionen aller Abhängigkeiten dieser Komponente. Aus diesem Grund werden neue Patch-Versionen von von bereitgestellten öffentlichen Komponenten möglicherweise automatisch auf Ihren AWS-Core-Geräten bereitgestellt, wenn Sie einer Objektgruppe neue Geräte hinzufügen oder die Bereitstellung aktualisieren, die auf diese Geräte abzielt. Einige automatische Updates, wie z. B. ein Kern-Update, können dazu führen, dass Ihre Geräte unerwartet neu gestartet werden.

    Um unbeabsichtigte Updates für eine Komponente zu verhindern, die auf Ihrem Gerät ausgeführt wird, empfehlen wir Ihnen, beim Erstellen einer Bereitstellung direkt Ihre bevorzugte Version dieser Komponente anzugeben. Weitere Informationen zum Aktualisierungsverhalten für AWS IoT Greengrass Core-Software finden Sie unter Aktualisieren der AWS IoT Greengrass Core-Software (OTA).

  • Bereitstellungsrichtlinien

    Definieren Sie, wann eine Konfiguration sicher bereitgestellt werden kann und was zu tun ist, wenn die Bereitstellung fehlschlägt. Sie können angeben, ob auf die Meldung von Komponenten gewartet werden soll, die sie aktualisieren können. Sie können auch angeben, ob Geräte auf ihre vorherige Konfiguration zurückgesetzt werden sollen, wenn sie eine fehlgeschlagene Bereitstellung anwenden.

  • Stoppen der Konfiguration

    Definieren Sie, wann und wie eine Bereitstellung angehalten werden soll. Die Bereitstellung wird beendet und schlägt fehl, wenn die von Ihnen definierten Kriterien erfüllt sind. Sie können beispielsweise eine Bereitstellung so konfigurieren, dass sie angehalten wird, wenn ein Prozentsatz der Geräte diese Bereitstellung nicht anwenden kann, nachdem sie von einer Mindestanzahl von Geräten empfangen wurde.

  • Rollout-Konfiguration

    Definieren Sie die Geschwindigkeit, mit der eine Bereitstellung auf den Zielgeräten bereitgestellt wird. Sie können eine exponentielle Ratenerhöhung mit minimalen und maximalen Ratengrenzen konfigurieren.

  • Timeout-Konfiguration

    Definieren Sie die maximale Zeit, die jedem Gerät zur Verfügung steht, um eine Bereitstellung anzuwenden. Wenn ein Gerät die von Ihnen angegebene Dauer überschreitet, kann das Gerät die Bereitstellung nicht anwenden.

Wichtig

Benutzerdefinierte Komponenten können Artefakte in S3-Buckets definieren. Wenn die AWS IoT Greengrass -Core-Software eine Komponente bereitstellt, lädt sie die Artefakte der Komponente von herunterAWS Cloud. Core-Geräterollen erlauben standardmäßig keinen Zugriff auf S3-Buckets. Um benutzerdefinierte Komponenten bereitzustellen, die Artefakte in einem S3-Bucket definieren, muss die Rolle des Core-Geräts Berechtigungen zum Herunterladen von Artefakten aus diesem Bucket erteilen. Weitere Informationen finden Sie unter Erlauben Sie den Zugriff auf S3-Buckets für Komponentenartefakte.