Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Interacción con el ciclo de vida del componente
Utilice el servicio IPC del ciclo de vida de los componentes para:
-
Actualizar el estado del componente en el dispositivo principal.
-
Suscribirse a las actualizaciones del estado de los componentes.
-
Evitar que el núcleo detenga el componente para aplicar una actualización durante una implementación.
-
Pausar y reanudar los procesos de los componentes.
Temas
Versiones mínimas de SDK
En la siguiente tabla se enumeran las versiones mínimas de las SDK para dispositivos con AWS IoT que debe utilizar para interactuar con el ciclo de vida de los componentes.
SDK | Versión mínima |
---|---|
Versión 1.2.10 |
|
Versión 1.5.3 |
|
Versión 1.17.0 |
|
Versión 1.12.0 |
Autorización
Para pausar o reanudar otros componentes de un componente personalizado, debe definir políticas de autorización que permitan a su componente administrar otros componentes. Para obtener información sobre cómo definir las políticas de autorización, consulte Autorización de los componentes para realizar operaciones de IPC.
Las políticas de autorización para la administración del ciclo de vida de los componentes tienen las siguientes propiedades.
Identificador de servicio IPC: aws.greengrass.ipc.lifecycle
Operación | Descripción | Recursos |
---|---|---|
|
Permite que un componente detenga los componentes que especifique. |
Un nombre de componente o |
|
Permite que un componente reanude los componentes que especifique. |
Un nombre de componente o |
|
Permite que un componente pause y reanude los componentes que especifique. |
Un nombre de componente o |
Ejemplos de políticas de autorización
Puede consultar el siguiente ejemplo de política de autorización con el fin de configurar las políticas de autorización para sus componentes.
ejemplo Ejemplo de política de autorización
El siguiente ejemplo de política de autorización permite a un componente pausar y reanudar todos los componentes.
{ "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
Actualice el estado del componente en el dispositivo principal.
Solicitud
Esta solicitud de operación tiene los siguientes parámetros:
state
-
El estado que se va a establecer. Esta enumeración,
LifecycleState
, tiene los siguientes valores:-
RUNNING
-
ERRORED
-
Respuesta
Esta operación no proporciona ninguna información en su respuesta.
SubscribeToComponentUpdates
Suscríbase para recibir notificaciones antes de que el software AWS IoT Greengrass principal actualice un componente. La notificación especifica si el núcleo se reiniciará o no como parte de la actualización.
El núcleo envía notificaciones de actualización solo si la política de actualización de componentes de la implementación especifica que se notifique a los componentes. El comportamiento predeterminado es notificar a los componentes. Para obtener más información, consulte Crear implementaciones el DeploymentComponentUpdatePolicyobjeto que puede proporcionar al llamar a la CreateDeploymentoperación.
importante
Las implementaciones locales no notifican a los componentes antes de las actualizaciones.
Esta es una operación de suscripción en la que se suscribe a un flujo de mensajes de eventos. Para usar esta operación, defina un identificador de respuesta de flujo con funciones que gestionen los mensajes de eventos, los errores y el cierre del flujo. Para obtener más información, consulte Suscripción a los flujos de eventos de IPC.
Tipo de mensaje del evento: ComponentUpdatePolicyEvents
sugerencia
Puede seguir un tutorial para aprender a desarrollar un componente que aplace condicionalmente las actualizaciones de los componentes. Para obtener más información, consulte Tutorial: Desarrollo de un componente de Greengrass que aplace las actualizaciones de los componentes.
Solicitud
Esta solicitud de la operación no tiene parámetros.
Respuesta
Esta respuesta de operación contiene la siguiente información:
messages
-
El flujo de mensajes de notificación. Este objeto,
ComponentUpdatePolicyEvents
, contiene la siguiente información:preUpdateEvent
(Python:pre_update_event
)-
(Opcional) Un evento que indica que el núcleo quiere actualizar un componente. Puede responder con la operación DeferComponentUpdate para confirmar o aplazar la actualización hasta que el componente esté listo para reiniciarse. Este objeto,
PreComponentUpdateEvent
, contiene la siguiente información:deploymentId
(Python:deployment_id
)-
El ID de la AWS IoT Greengrass implementación que actualiza el componente.
isGgcRestarting
(Python:is_ggc_restarting
)-
Si el núcleo necesita reiniciarse o no después de aplicar la actualización.
postUpdateEvent
(Python:post_update_event
)-
(Opcional) Un evento que indica que el núcleo actualizó un componente. Este objeto,
PostComponentUpdateEvent
, contiene la siguiente información:deploymentId
(Python:deployment_id
)-
El ID de la AWS IoT Greengrass implementación que actualizó el componente.
nota
Esta característica requiere la versión 2.7.0 o posterior del componente núcleo de Greengrass.
DeferComponentUpdate
Confirme o aplace la actualización de un componente que detecte con SubscribeToComponentUpdates. Debe especificar el tiempo que debe transcurrir antes de que el núcleo vuelva a comprobar si el componente está preparado para continuar con la actualización del componente. También puede utilizar esta operación para indicar al núcleo que su componente está listo para la actualización.
Si un componente no responde a la notificación de actualización del componente, el núcleo espera el tiempo que especifique en la política de actualización de componentes de la implementación. Transcurrido ese tiempo de espera, el núcleo continúa con la implementación. El tiempo de espera predeterminado de la actualización del componente es de 60 segundos. Para obtener más información, consulte Crear implementaciones y el DeploymentComponentUpdatePolicyobjeto que puede proporcionar al llamar a la CreateDeploymentoperación.
sugerencia
Puede seguir un tutorial para aprender a desarrollar un componente que aplace condicionalmente las actualizaciones de los componentes. Para obtener más información, consulte Tutorial: Desarrollo de un componente de Greengrass que aplace las actualizaciones de los componentes.
Solicitud
Esta solicitud de operación tiene los siguientes parámetros:
deploymentId
(Python:deployment_id
)-
El identificador del AWS IoT Greengrass despliegue que se va a aplazar.
message
-
(Opcional) El nombre del componente cuyas actualizaciones se van a aplazar.
Toma el valor predeterminado del componente que realiza la solicitud.
recheckAfterMs
(Python:recheck_after_ms
)-
El tiempo en milisegundos durante el que se debe aplazar la actualización. El núcleo espera esa cantidad de tiempo y luego envía otro
PreComponentUpdateEvent
que puede detectar con SubscribeToComponentUpdates.Especifique
0
si desea confirmar la actualización. Esto indica al núcleo que el componente está listo para la actualización.El valor predeterminado es cero milisegundos, lo que significa confirmar la actualización.
Respuesta
Esta operación no proporciona ninguna información en su respuesta.
PauseComponent
Esta función está disponible para la versión 2.4.0 y versiones posteriores del componente núcleo de Greengrass. AWS IoT Greengrass actualmente no admite esta función en los dispositivos principales de Windows.
Pausa los procesos de un componente en el dispositivo principal. Para reanudar un componente, utilice la ResumeComponentoperación.
Solo puede pausar los componentes genéricos. Si intenta pausar cualquier otro tipo de componente, esta operación arroja un InvalidRequestError
.
nota
Esta operación no puede pausar los procesos contenerizados, como los contenedores de Docker. Para pausar y reanudar un contenedor de Docker, puede usar los comandos docker pause
Esta operación no detiene las dependencias de los componentes ni los componentes que dependen del componente que se pausa. Tenga en cuenta este comportamiento al pausar un componente que es una dependencia de otro componente, ya que el componente dependiente puede tener problemas cuando su dependencia está en pausa.
Al reiniciar o apagar un componente en pausa, por ejemplo, durante una implementación, el núcleo de Greengrass reanuda el componente y ejecuta su ciclo de vida de apagado. Para obtener más información sobre reiniciar un componente, consulte RestartComponent.
importante
Para usar esta operación, debe definir una política de autorización que otorgue permiso para usar esta operación. Para obtener más información, consulte Autorización.
Versiones mínimas de SDK
En la siguiente tabla se enumeran las versiones mínimas de las SDK para dispositivos con AWS IoT que debe utilizar para pausar y reanudar los componentes.
SDK | Versión mínima |
---|---|
Versión 1.4.3 |
|
Versión 1.6.2 |
|
Versión 1.13.1 |
|
versión 1.12.0 |
Solicitud
Esta solicitud de operación tiene los siguientes parámetros:
componentName
(Python:component_name
)-
El nombre del componente que se va a pausar, que debe ser un componente genérico. Para obtener más información, consulte Tipos de componentes.
Respuesta
Esta operación no proporciona ninguna información en su respuesta.
ResumeComponent
Esta función está disponible para la versión 2.4.0 y versiones posteriores del componente núcleo de Greengrass. AWS IoT Greengrass actualmente no admite esta función en los dispositivos principales de Windows.
Reanuda los procesos de un componente en el dispositivo principal. Para pausar un componente, utilice la PauseComponentoperación.
Solo puede reanudar los componentes pausados. Si intenta reanudar un componente que no está en pausa, esta operación arroja un InvalidRequestError
.
importante
Para utilizar esta operación, debe definir una política de autorización que conceda permiso para hacerlo. Para obtener más información, consulte Autorización.
Versiones mínimas de SDK
En la siguiente tabla se enumeran las versiones mínimas de las SDK para dispositivos con AWS IoT que debe utilizar para pausar y reanudar los componentes.
SDK | Versión mínima |
---|---|
Versión 1.4.3 |
|
Versión 1.6.2 |
|
Versión 1.13.1 |
|
versión 1.12.0 |
Solicitud
Esta solicitud de operación tiene los siguientes parámetros:
componentName
(Python:component_name
)-
El nombre del componente a reanudar.
Respuesta
Esta operación no proporciona ninguna información en su respuesta.