Interactúe con el ciclo de vida del componente - AWS IoT Greengrass

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.

Interactúe con el ciclo de vida del componente

Utilice el servicio IPC del ciclo de vida de los componentes para:

  • Actualice el estado del componente en el dispositivo principal.

  • Suscríbase a las actualizaciones del estado de los componentes.

  • Evite que el núcleo detenga el componente para aplicar una actualización durante una implementación.

  • Pausa y reanuda los procesos de los componentes.

Versiones mínimas del SDK

En la siguiente tabla se enumeran las versiones mínimas del SDK para dispositivos con AWS IoT que debe utilizar para interactuar con el ciclo de vida de los componentes.

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, consulteAutorice a los componentes a 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

aws.greengrass#PauseComponent

Permite que un componente detenga los componentes que especifique.

Un nombre de componente o * para permitir el acceso a todos los componentes.

aws.greengrass#ResumeComponent

Permite que un componente reanude los componentes que especifique.

Un nombre de componente o * para permitir el acceso a todos los componentes.

*

Permite que un componente detenga y reanude los componentes que especifique.

Un nombre de componente o * para permitir el acceso a todos los componentes.

Ejemplos de políticas de autorización

Puede hacer referencia al siguiente ejemplo de política de autorización para ayudarle a 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

La solicitud de esta 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 y 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 operación 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 controlador de respuesta de transmisión con funciones que gestionen los mensajes de eventos, los errores y el cierre de la transmisión. Para obtener más información, consulte Suscríbase a las transmisiones de eventos del IPC.

Tipo de mensaje de 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: Desarrolle un componente de Greengrass que aplace las actualizaciones de los componentes.

Solicitud

La solicitud de esta operación no tiene ningún parámetro.

Respuesta

La respuesta de esta 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 DeferComponentUpdate operación para confirmar o aplazar la actualización hasta que el componente esté listo para reiniciarse. Este objeto contiene PreComponentUpdateEvent 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 o no reiniciarse para 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 función 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 descubra 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 el despliegue. El tiempo de espera predeterminado para la actualización de los componentes 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: Desarrolle un componente de Greengrass que aplace las actualizaciones de los componentes.

Solicitud

La solicitud de esta operación tiene los siguientes parámetros:

deploymentId(Python:deployment_id)

El ID de la AWS IoT Greengrass implementación que se va a aplazar.

message

(Opcional) El nombre del componente cuyas actualizaciones se van a aplazar.

El valor predeterminado es el nombre 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 con el PreComponentUpdateEvent que podrás descubrirlo. SubscribeToComponentUpdates

Especifique si 0 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 Greengrassactualmente no admite esta función en los dispositivos principales de Windows.

Detiene 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 unInvalidRequestError.

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 y docker unpause.

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 el reinicio de un componente, consulte. RestartComponent

importante

Para utilizar esta operación, debe definir una política de autorización que conceda permiso para utilizarla. Para obtener más información, consulte Autorización.

Versiones mínimas del SDK

En la siguiente tabla se enumeran las versiones mínimas SDK para dispositivos con AWS IoT que debes usar para pausar y reanudar los componentes.

Solicitud

La solicitud de esta 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 Greengrassactualmente 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 del SDK

En la siguiente tabla se enumeran las versiones mínimas SDK para dispositivos con AWS IoT que debes usar para pausar y reanudar los componentes.

Solicitud

La solicitud de esta operación tiene los siguientes parámetros:

componentName(Python:component_name)

El nombre del componente que se va a reanudar.

Respuesta

Esta operación no proporciona ninguna información en su respuesta.