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.
Temas
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.
SDK | Versión mínima |
---|---|
v1.2.10 |
|
v1.5.3 |
|
v1.17.0 |
|
v1.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, consulteAutorice a los componentes a realizar operaciones 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 detenga y reanude los componentes que especifique. |
Un nombre de componente o |
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 IPC eventos.
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. SubscribeToComponentUpdatesEspecifique 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
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.
SDK | Versión mínima |
---|---|
v1.4.3 |
|
v1.6.2 |
|
v1.13.1 |
|
v1.12.0 |
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.
SDK | Versión mínima |
---|---|
v1.4.3 |
|
v1.6.2 |
|
v1.13.1 |
|
v1.12.0 |
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.