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.
Interagieren mit dem Komponentenlebenszyklus
Verwenden Sie den Komponentenlebenszyklus-IPK-Service, um:
-
Aktualisieren Sie den Komponentenstatus auf dem Core-Gerät.
-
Abonnieren Sie Aktualisierungen des Komponentenstatus.
-
Verhindern Sie, dass der Kern die Komponente stoppt, um während einer Bereitstellung ein Update anzuwenden.
-
Pausieren und Fortsetzen von Komponentenprozessen.
Themen
SDK-Mindestversionen
In der folgenden Tabelle sind die Mindestversionen von aufgeführtAWS IoT Device SDK, die Sie für die Interaktion mit dem Komponentenlebenszyklus verwenden müssen.
SDK | Mindestversion |
---|---|
v1.2.10 |
|
v1.5.3 |
|
v1.17.0 |
|
v1.12.0 |
Autorisierung
Um andere Komponenten von einer benutzerdefinierten Komponente aus anzuhalten oder fortzusetzen, müssen Sie Autorisierungsrichtlinien definieren, die es Ihrer Komponente ermöglichen, andere Komponenten zu verwalten. Informationen zum Definieren von Autorisierungsrichtlinien finden Sie unter Autorisieren Sie Komponenten zur Ausführung von Vorgängen IPC.
Autorisierungsrichtlinien für die Verwaltung des Komponentenlebenszyklus haben die folgenden Eigenschaften.
IPC-Service-ID: aws.greengrass.ipc.lifecycle
Operation | Beschreibung | Ressourcen |
---|---|---|
|
Ermöglicht einer Komponente, die von Ihnen angegebenen Komponenten anzuhalten. |
Ein Komponentenname oder , |
|
Ermöglicht einer Komponente, die von Ihnen angegebenen Komponenten fortzusetzen. |
Ein Komponentenname oder , |
|
Ermöglicht einer Komponente, die von Ihnen angegebenen Komponenten anzuhalten und fortzusetzen. |
Ein Komponentenname oder , |
Beispiele für Autorisierungsrichtlinien
Sie können auf das folgende Beispiel für eine Autorisierungsrichtlinie verweisen, um Ihnen bei der Konfiguration von Autorisierungsrichtlinien für Ihre Komponenten zu helfen.
Beispiel für eine Autorisierungsrichtlinie
Die folgende Beispiel-Autorisierungsrichtlinie ermöglicht es einer Komponente, alle Komponenten anzuhalten und fortzusetzen.
{ "accessControl": { "aws.greengrass.ipc.lifecycle": { "
com.example.MyLocalLifecycleComponent
:lifecycle:1": { "policyDescription": "Allows access to pause/resume all components.", "operations": [ "aws.greengrass#PauseComponent", "aws.greengrass#ResumeComponent" ], "resources": [ "*" ] } } } }
UpdateState
Aktualisieren Sie den Status der Komponente auf dem Core-Gerät.
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
state
-
Der Status, der festgelegt werden soll. Diese Aufzählung,
LifecycleState
, hat die folgenden Werte:-
RUNNING
-
ERRORED
-
Antwort
Dieser Vorgang liefert keine Informationen in seiner Antwort.
SubscribeToComponentUpdates
Abonnieren Sie , um Benachrichtigungen zu erhalten, bevor die AWS IoT Greengrass -Core-Software eine Komponente aktualisiert. Die Benachrichtigung gibt an, ob der Kern im Rahmen des Updates neu gestartet wird oder nicht.
Der -Kern sendet Aktualisierungsbenachrichtigungen nur, wenn die Richtlinie zur Komponentenaktualisierung der Bereitstellung angibt, Komponenten zu benachrichtigen. Das Standardverhalten besteht darin, Komponenten zu benachrichtigen. Weitere Informationen finden Sie unter Erstellen von Bereitstellungen und das -DeploymentComponentUpdatePolicyObjekt, das Sie beim Aufrufen der -CreateDeploymentOperation angeben können.
Wichtig
Lokale Bereitstellungen benachrichtigen Komponenten nicht vor Aktualisierungen.
Dieser Vorgang ist ein Abonnementvorgang, bei dem Sie einen Stream von Ereignisnachrichten abonnieren. Um diesen Vorgang zu verwenden, definieren Sie einen Stream-Antwort-Handler mit Funktionen, die Ereignismeldungen, Fehler und Stream-Schließung verarbeiten. Weitere Informationen finden Sie unter Abonnieren Sie IPC Event-Streams.
Typ der Ereignisnachricht: ComponentUpdatePolicyEvents
Tipp
Sie können einem Tutorial folgen, um zu erfahren, wie Sie eine Komponente entwickeln, die Komponentenaktualisierungen bedingt verzögert. Weitere Informationen finden Sie unter Tutorial: Entwickeln einer Greengrass-Komponente, die Komponentenaktualisierungen verzögert.
Anforderung
Die Anforderung dieser Operation hat keine Parameter.
Antwort
Die Antwort dieser Operation enthält die folgenden Informationen:
messages
-
Der Stream von Benachrichtigungen. Dieses Objekt,
ComponentUpdatePolicyEvents
, enthält die folgenden Informationen:preUpdateEvent
(Python:pre_update_event
)-
(Optional) Ein Ereignis, das angibt, dass der Kern eine Komponente aktualisieren möchte. Sie können mit der -DeferComponentUpdateOperation antworten, um das Update zu bestätigen oder zu verschieben, bis Ihre Komponente zum Neustart bereit ist. Dieses Objekt,
PreComponentUpdateEvent
, enthält die folgenden Informationen:deploymentId
(Python:deployment_id
)-
Die ID der AWS IoT Greengrass Bereitstellung, die die Komponente aktualisiert.
isGgcRestarting
(Python:is_ggc_restarting
)-
Gibt an, ob der Kern neu gestartet werden muss, um das Update anzuwenden.
postUpdateEvent
(Python:post_update_event
)-
(Optional) Ein Ereignis, das angibt, dass der Kern eine Komponente aktualisiert hat. Dieses Objekt,
PostComponentUpdateEvent
, enthält die folgenden Informationen:deploymentId
(Python:deployment_id
)-
Die ID der AWS IoT Greengrass Bereitstellung, die die Komponente aktualisiert hat.
Anmerkung
Diese Funktion erfordert v2.7.0 oder höher der Greengrass-Kernkomponente.
DeferComponentUpdate
Bestätigen oder verschieben Sie eine Komponentenaktualisierung, die Sie mit entdeckenSubscribeToComponentUpdates. Sie geben die Wartezeit an, bevor der Kern erneut prüft, ob Ihre Komponente bereit ist, die Komponentenaktualisierung fortzusetzen. Sie können diese Operation auch verwenden, um dem Kern mitzuteilen, dass Ihre Komponente für die Aktualisierung bereit ist.
Wenn eine Komponente nicht auf die Benachrichtigung zur Komponentenaktualisierung reagiert, wartet der Kern die Zeit, die Sie in der Richtlinie zur Komponentenaktualisierung der Bereitstellung angeben. Nach diesem Timeout fährt der Kern mit der Bereitstellung fort. Das Standard-Timeout für Komponentenaktualisierungen beträgt 60 Sekunden. Weitere Informationen finden Sie unter Erstellen von Bereitstellungen und das -DeploymentComponentUpdatePolicyObjekt, das Sie beim Aufrufen der -CreateDeploymentOperation angeben können.
Tipp
Sie können einem Tutorial folgen, um zu erfahren, wie Sie eine Komponente entwickeln, die Komponentenaktualisierungen bedingt verzögert. Weitere Informationen finden Sie unter Tutorial: Entwickeln einer Greengrass-Komponente, die Komponentenaktualisierungen verzögert.
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
deploymentId
(Python:deployment_id
)-
Die ID der zu verschiebenden AWS IoT Greengrass Bereitstellung.
message
-
(Optional) Der Name der Komponente, für die Updates verschoben werden sollen.
Standardmäßig ist der Name der Komponente, die die Anforderung stellt.
recheckAfterMs
(Python:recheck_after_ms
)-
Die Zeit in Millisekunden, für die die Aktualisierung verschoben werden soll. Der Kern wartet diese Zeit und sendet dann ein weiteres
PreComponentUpdateEvent
, das Sie mit erkennen könnenSubscribeToComponentUpdates.Geben Sie an
0
, um die Aktualisierung zu bestätigen. Dadurch wird dem Kern mitgeteilt, dass Ihre Komponente für das Update bereit ist.Der Standardwert ist null Millisekunden, was bedeutet, dass die Aktualisierung bestätigt wird.
Antwort
Dieser Vorgang liefert keine Informationen in seiner Antwort.
PauseComponent
Diese Funktion ist für v2.4.0 und höher der Greengrass-Kernkomponente verfügbar. unterstützt diese Funktion derzeit AWS IoT Greengrass nicht auf Windows-Kerngeräten.
Pausiert die Prozesse einer Komponente auf dem Core-Gerät. Um eine Komponente fortzusetzen, verwenden Sie die -ResumeComponentOperation.
Sie können nur generische Komponenten pausieren. Wenn Sie versuchen, einen anderen Komponententyp anzuhalten, löst dieser Vorgang eine ausInvalidRequestError
.
Anmerkung
Dieser Vorgang kann keine containerisierten Prozesse wie Docker-Container anhalten. Um einen Docker-Container anzuhalten und fortzusetzen, können Sie die Befehle Docker anhalten
Dieser Vorgang unterbricht keine Komponentenabhängigkeiten oder Komponenten, die von der Komponente abhängen, die Sie pausieren. Beachten Sie dieses Verhalten, wenn Sie eine Komponente anhalten, die eine Abhängigkeit einer anderen Komponente ist, da bei der abhängigen Komponente Probleme auftreten können, wenn ihre Abhängigkeit angehalten wird.
Wenn Sie eine angehaltene Komponente neu starten oder herunterfahren, z. B. durch eine Bereitstellung, nimmt der Greengrass-Kernus die Komponente wieder auf und führt ihren Lebenszyklus zum Herunterfahren aus. Weitere Informationen zum Neustarten einer Komponente finden Sie unter RestartComponent.
Wichtig
Um diese Operation verwenden zu können, müssen Sie eine Autorisierungsrichtlinie definieren, die die Berechtigung zur Verwendung dieser Operation erteilt. Weitere Informationen finden Sie unter Autorisierung.
SDK-Mindestversionen
In der folgenden Tabelle sind die Mindestversionen von aufgeführtAWS IoT Device SDK, die Sie zum Anhalten und Fortsetzen von Komponenten verwenden müssen.
SDK | Mindestversion |
---|---|
v1.4.3 |
|
v1.6.2 |
|
v1.13.1 |
|
v1.12.0 |
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
componentName
(Python:component_name
)-
Der Name der Komponente, die angehalten werden soll. Dabei muss es sich um eine generische Komponente handeln. Weitere Informationen finden Sie unter Komponententypen.
Antwort
Dieser Vorgang liefert keine Informationen in seiner Antwort.
ResumeComponent
Diese Funktion ist für v2.4.0 und höher der Greengrass-Kernkomponente verfügbar. unterstützt diese Funktion derzeit AWS IoT Greengrass nicht auf Windows-Kerngeräten.
Setzt die Prozesse einer Komponente auf dem Core-Gerät fort. Um eine Komponente anzuhalten, verwenden Sie die -PauseComponentOperation.
Sie können nur angehaltene Komponenten fortsetzen. Wenn Sie versuchen, eine Komponente fortzusetzen, die nicht angehalten wurde, löst dieser Vorgang eine ausInvalidRequestError
.
Wichtig
Um diesen Vorgang verwenden zu können, müssen Sie eine Autorisierungsrichtlinie definieren, die die entsprechende Berechtigung erteilt. Weitere Informationen finden Sie unter Autorisierung.
SDK-Mindestversionen
In der folgenden Tabelle sind die Mindestversionen von aufgeführtAWS IoT Device SDK, die Sie zum Anhalten und Fortsetzen von Komponenten verwenden müssen.
SDK | Mindestversion |
---|---|
v1.4.3 |
|
v1.6.2 |
|
v1.13.1 |
|
v1.12.0 |
Anforderung
Die Anforderung dieser Operation hat die folgenden Parameter:
componentName
(Python:component_name
)-
Der Name der Komponente, die fortgesetzt werden soll.
Antwort
Dieser Vorgang liefert keine Informationen in seiner Antwort.