Interagir avec le cycle de vie des composants - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interagir avec le cycle de vie des composants

Utilisez le service IPC du cycle de vie des composants pour :

  • Mettez à jour l'état du composant sur le périphérique principal.

  • Abonnez-vous aux mises à jour de l'état des composants.

  • Empêchez le noyau d'arrêter le composant pour appliquer une mise à jour lors d'un déploiement.

  • Suspendez et reprenez les processus relatifs aux composants.

Versions minimales du SDK

Le tableau suivant répertorie les versions minimales Kit SDK des appareils AWS IoT que vous devez utiliser pour interagir avec le cycle de vie des composants.

Autorisation

Pour suspendre ou reprendre d'autres composants d'un composant personnalisé, vous devez définir des politiques d'autorisation qui permettent à votre composant de gérer d'autres composants. Pour plus d'informations sur la définition des politiques d'autorisation, consultezAutoriser les composants à effectuer des IPC opérations.

Les politiques d'autorisation pour la gestion du cycle de vie des composants présentent les propriétés suivantes.

Identifiant du service IPC : aws.greengrass.ipc.lifecycle

Opération Description Ressources

aws.greengrass#PauseComponent

Permet à un composant de suspendre les composants que vous spécifiez.

Un nom de composant, ou * pour autoriser l'accès à tous les composants.

aws.greengrass#ResumeComponent

Permet à un composant de reprendre les composants que vous spécifiez.

Un nom de composant, ou * pour autoriser l'accès à tous les composants.

*

Permet à un composant de suspendre et de reprendre les composants que vous spécifiez.

Un nom de composant, ou * pour autoriser l'accès à tous les composants.

Exemples de politiques d'autorisation

Vous pouvez vous référer à l'exemple de politique d'autorisation suivant pour vous aider à configurer les politiques d'autorisation pour vos composants.

Exemple de politique d'autorisation

L'exemple de politique d'autorisation suivant permet à un composant de suspendre et de reprendre tous les composants.

{ "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

Mettez à jour l'état du composant sur le périphérique principal.

Demande

La demande de cette opération comporte les paramètres suivants :

state

État à définir. Cette énumération possède LifecycleState les valeurs suivantes :

  • RUNNING

  • ERRORED

Réponse

Cette opération ne fournit aucune information dans sa réponse.

SubscribeToComponentUpdates

Abonnez-vous pour recevoir des notifications avant que le logiciel AWS IoT Greengrass Core ne mette à jour un composant. La notification indique si le noyau redémarrera ou non dans le cadre de la mise à jour.

Le noyau envoie des notifications de mise à jour uniquement si la politique de mise à jour des composants du déploiement indique de notifier les composants. Le comportement par défaut consiste à notifier les composants. Pour plus d'informations, reportez-vous à la section Créer des déploiements et à l'DeploymentComponentUpdatePolicyobjet que vous pouvez fournir lorsque vous appelez l'CreateDeploymentopération.

Important

Les déploiements locaux ne notifient pas les composants avant les mises à jour.

Il s'agit d'une opération d'abonnement dans le cadre de laquelle vous vous abonnez à un flux de messages d'événements. Pour utiliser cette opération, définissez un gestionnaire de réponse au flux avec des fonctions qui gèrent les messages d'événements, les erreurs et la fermeture du flux. Pour plus d’informations, consultez Abonnez-vous aux diffusions IPC d'événements.

Type de message d'événement : ComponentUpdatePolicyEvents

Astuce

Vous pouvez suivre un didacticiel pour apprendre à développer un composant qui reporte de manière conditionnelle les mises à jour des composants. Pour plus d’informations, consultez Tutoriel : Développement d'un composant Greengrass qui reporte les mises à jour des composants.

Demande

La demande de cette opération ne comporte aucun paramètre.

Réponse

La réponse de cette opération contient les informations suivantes :

messages

Le flux de messages de notification. Cet objet contient ComponentUpdatePolicyEvents les informations suivantes :

preUpdateEvent(Python :pre_update_event)

(Facultatif) Evénement indiquant que le noyau souhaite mettre à jour un composant. Vous pouvez répondre par une DeferComponentUpdate opération visant à accuser réception ou à différer la mise à jour jusqu'à ce que le composant soit prêt à redémarrer. Cet objet contient PreComponentUpdateEvent les informations suivantes :

deploymentId(Python :deployment_id)

ID du AWS IoT Greengrass déploiement qui met à jour le composant.

isGgcRestarting(Python :is_ggc_restarting)

Si le noyau doit ou non redémarrer pour appliquer la mise à jour.

postUpdateEvent(Python :post_update_event)

(Facultatif) Evénement indiquant que le noyau a mis à jour un composant. Cet objet contient PostComponentUpdateEvent les informations suivantes :

deploymentId(Python :deployment_id)

ID du AWS IoT Greengrass déploiement qui a mis à jour le composant.

Note

Cette fonctionnalité nécessite la version 2.7.0 ou ultérieure du composant Greengrass nucleus.

DeferComponentUpdate

Reconnaissez ou reportez une mise à jour d'un composant que vous découvrez avecSubscribeToComponentUpdates. Vous spécifiez le délai d'attente avant que le noyau vérifie à nouveau si votre composant est prêt à être mis à jour. Vous pouvez également utiliser cette opération pour indiquer au noyau que votre composant est prêt pour la mise à jour.

Si un composant ne répond pas à la notification de mise à jour du composant, le noyau attend le délai que vous spécifiez dans la politique de mise à jour des composants du déploiement. Après ce délai, le noyau procède au déploiement. Le délai de mise à jour des composants par défaut est de 60 secondes. Pour plus d'informations, reportez-vous à la section Créer des déploiements et à l'DeploymentComponentUpdatePolicyobjet que vous pouvez fournir lorsque vous appelez l'CreateDeploymentopération.

Astuce

Vous pouvez suivre un didacticiel pour apprendre à développer un composant qui reporte de manière conditionnelle les mises à jour des composants. Pour plus d’informations, consultez Tutoriel : Développement d'un composant Greengrass qui reporte les mises à jour des composants.

Demande

La demande de cette opération comporte les paramètres suivants :

deploymentId(Python :deployment_id)

ID du AWS IoT Greengrass déploiement à reporter.

message

(Facultatif) Nom du composant pour lequel les mises à jour doivent être différées.

La valeur par défaut est le nom du composant à l'origine de la demande.

recheckAfterMs(Python :recheck_after_ms)

Durée en millisecondes pendant laquelle la mise à jour doit être différée. Le noyau attend ce laps de temps puis en envoie un autre avec PreComponentUpdateEvent SubscribeToComponentUpdates lequel vous pouvez le découvrir.

Spécifiez 0 pour accuser réception de la mise à jour. Cela indique au noyau que votre composant est prêt pour la mise à jour.

La valeur par défaut est zéro milliseconde, ce qui signifie que la mise à jour est confirmée.

Réponse

Cette opération ne fournit aucune information dans sa réponse.

PauseComponent

Cette fonctionnalité est disponible pour les versions 2.4.0 et ultérieures du composant Greengrass nucleus. AWS IoT Greengrassne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux.

Suspend les processus d'un composant sur le périphérique principal. Pour reprendre un composant, utilisez l'ResumeComponentopération.

Vous ne pouvez suspendre que les composants génériques. Si vous essayez de suspendre un autre type de composant, cette opération génère unInvalidRequestError.

Note

Cette opération ne peut pas suspendre les processus conteneurisés, tels que les conteneurs Docker. Pour suspendre et reprendre un conteneur Docker, vous pouvez utiliser les commandes docker pause et docker unpause.

Cette opération ne met pas en pause les dépendances des composants ni les composants qui dépendent du composant que vous interrompez. Tenez compte de ce comportement lorsque vous suspendez un composant dépendant d'un autre composant, car le composant dépendant peut rencontrer des problèmes lorsque sa dépendance est suspendue.

Lorsque vous redémarrez ou arrêtez un composant suspendu, par exemple lors d'un déploiement, le noyau Greengrass reprend le composant et exécute son cycle de vie d'arrêt. Pour plus d'informations sur le redémarrage d'un composant, consultezRestartComponent.

Important

Pour utiliser cette opération, vous devez définir une politique d'autorisation qui accorde l'autorisation d'utiliser cette opération. Pour plus d’informations, consultez Autorisation.

Versions minimales du SDK

Le tableau suivant répertorie les versions minimales Kit SDK des appareils AWS IoT que vous devez utiliser pour suspendre et reprendre les composants.

Demande

La demande de cette opération comporte les paramètres suivants :

componentName(Python :component_name)

Nom du composant à suspendre, qui doit être un composant générique. Pour plus d’informations, consultez Types de composants.

Réponse

Cette opération ne fournit aucune information dans sa réponse.

ResumeComponent

Cette fonctionnalité est disponible pour les versions 2.4.0 et ultérieures du composant Greengrass nucleus. AWS IoT Greengrassne prend actuellement pas en charge cette fonctionnalité sur les appareils Windows principaux.

Reprend les processus d'un composant sur le périphérique principal. Pour suspendre un composant, utilisez l'PauseComponentopération.

Vous ne pouvez reprendre que les composants en pause. Si vous essayez de reprendre un composant qui n'est pas en pause, cette opération lance unInvalidRequestError.

Important

Pour utiliser cette opération, vous devez définir une politique d'autorisation qui accorde l'autorisation de le faire. Pour plus d’informations, consultez Autorisation.

Versions minimales du SDK

Le tableau suivant répertorie les versions minimales Kit SDK des appareils AWS IoT que vous devez utiliser pour suspendre et reprendre les composants.

Demande

La demande de cette opération comporte les paramètres suivants :

componentName(Python :component_name)

Nom du composant à reprendre.

Réponse

Cette opération ne fournit aucune information dans sa réponse.