Implementación de componentes de AWS IoT Greengrass en los dispositivos - 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.

Implementación de componentes de AWS IoT Greengrass en los dispositivos

Puede utilizar AWS IoT Greengrass para implementar componentes en dispositivos o grupos de dispositivos. Puede usar implementaciones para definir los componentes y las configuraciones que se envían a los dispositivos. AWS IoT Greengrass se implementa en objetivos, objetos AWS IoT o grupos de objetos que representan los dispositivos principales de Greengrass. AWS IoT Greengrass utiliza trabajos de AWS IoT Core para implementarlas en sus dispositivos principales. Puede configurar la forma en que se implementará el trabajo en sus dispositivos.

Implementaciones en dispositivos principales

Cada dispositivo principal ejecuta los componentes de las implementaciones de ese dispositivo. Una nueva implementación en el mismo destino sobrescribe la implementación anterior en el destino. Cuando crea una implementación, define los componentes y las configuraciones que se van a aplicar al software existente del dispositivo principal.

Cuando revisa una implementación para un destino, sustituye los componentes de la revisión anterior por los componentes de la nueva revisión. Por ejemplo, implementa los componentes Administrador de registros y Administrador de secretos en el grupo de objetos TestGroup. A continuación, se crea otra implementación para TestGroup que especifica solo el componente administrador de secretos. Como resultado, los dispositivos principales de ese grupo ya no ejecutan el administrador de registros.

Resolución de dependencias de plataformas

Cuando un dispositivo principal recibe una implementación, comprueba que los componentes son compatibles con el dispositivo principal. Por ejemplo, si implementa el Firehose en un destino de Windows, la implementación fallará.

Resolución de dependencias de componentes

El dispositivo principal también comprueba si cada dependencia de componente son compatibles con las restricciones de versión para las implementaciones de otros componentes en este grupo de objetos. Cuando las restricciones de versión de un componente se superponen, Greengrass utiliza la versión más alta aplicable del componente. Por ejemplo:

  • Usted implementa el componente A en TestGroup. El componente A depende del componente com.example.PythonRuntime con versiones 3.5 a 3.10.

  • A continuación, implementa el componente B en TestGroup. El componente B depende del componente com.example.PythonRuntime con versiones 3.7 a 3.8.

Como resultado, los dispositivos principales en TestGroup determinan que puede implementar la versión 3.8 del componente com.example.PythonRuntime, ya que esta es la versión más alta aplicable donde las restricciones de versión se superponen.

Dependencias de componentes, por ejemplo, componentes.

A continuación, implementa el componente C en TestGroup. El componente C depende del componente com.example.PythonRuntime con versiones 2.6 a 2.7. Esta implementación falla porque no hay ninguna versión del componente que cumpla con las restricciones 2.6 a 2.7 y 3.7 a 3.8.

Dependencias de componentes que provocan una implementación fallida.

Eliminación de un dispositivo de un grupo de objetos

Cuando elimina un dispositivo principal de un grupo de objetos, el comportamiento de implementación del componente depende de la versión del núcleo de Greengrass que ejecute el dispositivo principal.

2.5.1 and later

Cuando elimine un dispositivo principal de un grupo de objetos, el comportamiento depende de si la política AWS IoT concede el permiso greengrass:ListThingGroupsForCoreDevice. Para obtener más información sobre este permiso y las políticas AWS IoT para los dispositivos principales, consulte Autenticación y autorización de dispositivos en AWS IoT Greengrass.

  • Si la política AWS IoT concede este permiso

    Cuando se elimina un dispositivo principal de un grupo de objetos, AWS IoT Greengrass elimina los componentes del grupo de objetos la próxima vez que se realice una implementación en el dispositivo. Si un componente del dispositivo se incluye en la siguiente implementación, ese componente no se elimina del dispositivo.

  • Si la política AWS IoT no concede este permiso

    Cuando elimina un dispositivo principal de un grupo de objetos, AWS IoT Greengrass no elimina los componentes de ese grupo de objetos del dispositivo.

    Para eliminar un componente de un dispositivo, utilice el comando crear implementación de la CLI de Greengrass. Especifique el componente que desea eliminar con el argumento --remove y especifique el grupo de objetos con el argumento --groupId.

2.5.0

Cuando se elimina un dispositivo principal de un grupo de objetos, AWS IoT Greengrass elimina los componentes del grupo de objetos la próxima vez que se realice una implementación en el dispositivo. Si un componente del dispositivo se incluye en la siguiente implementación, ese componente no se elimina del dispositivo.

Este comportamiento requiere que la política AWS IoT del dispositivo principal conceda el permiso greengrass:ListThingGroupsForCoreDevice. Si un dispositivo principal no tiene este permiso, no podrá aplicar las implementaciones. Para obtener más información, consulte Autenticación y autorización de dispositivos en AWS IoT Greengrass.

2.0.x - 2.4.x

Cuando elimina un dispositivo principal de un grupo de objetos, AWS IoT Greengrass no elimina los componentes de ese grupo de objetos del dispositivo.

Para eliminar un componente de un dispositivo, utilice el comando crear implementación de la CLI de Greengrass. Especifique el componente que desea eliminar con el argumento --remove y especifique el grupo de objetos con el argumento --groupId.

Implementaciones

Las implementaciones son continuas. Cuando crea una implementación, AWS IoT Greengrass lleva a cabo la implementación en los dispositivos de destino que están en línea. Si un dispositivo de destino no está en línea, recibirá la implementación la próxima vez que se conecte a AWS IoT Greengrass. Cuando agregue un dispositivo principal a un grupo de objetos de destino, AWS IoT Greengrass envía al dispositivo la última implementación de ese grupo de objetos.

Antes de que un dispositivo principal implemente un componente, notifica de forma predeterminada a cada componente del dispositivo. Los componentes de Greengrass pueden responder a la notificación para aplazar la implementación. Es posible que desee aplazar la implementación si el nivel de batería del dispositivo es bajo o si está ejecutando un proceso que no se puede interrumpir. Para obtener más información, consulte Tutorial: Desarrollo de un componente de Greengrass que aplace las actualizaciones de los componentes. Cuando crea una implementación, puede configurarla para que se implemente sin notificar a los componentes.

Cada objeto o grupo de objetos de destino puede tener una implementación a la vez. Esto significa que, cuando crea una implementación para un destino, AWS IoT Greengrass ya no implementa la revisión anterior de la implementación de ese destino.

Opciones de implementación

Las implementaciones ofrecen varias opciones que le permiten controlar qué dispositivos reciben una actualización y cómo se implementa la actualización. Cuando cree una implementación, puede configurar las siguientes opciones:

  • Componentes de AWS IoT Greengrass

    Define los componentes que se van a instalar y ejecutar en los dispositivos de destino. Los componentes de AWS IoT Greengrass son módulos de software que se implementan y ejecutan en dispositivos principales de Greengrass. Los dispositivos reciben componentes solo si el componente es compatible con la plataforma del dispositivo. Esto le permite realizar la implementación en grupos de dispositivos, incluso si los dispositivos de destino se ejecutan en varias plataformas. Si un componente no es compatible con la plataforma del dispositivo, el componente no se implementa en el dispositivo.

    Puede implementar componentes personalizados y componentes proporcionados por AWS en sus dispositivos. Cuando implementa un componente, AWS IoT Greengrass identifica las dependencias de los componentes y también los implementa. Para obtener más información, consulte Desarrollar AWS IoT Greengrass componentes y Componentes proporcionados por AWS.

    Usted define la versión y la actualización de configuración que se va a implementar para cada componente. La actualización de configuración especifica cómo modificar la configuración existente del componente en el dispositivo principal o la configuración predeterminada del componente si el componente no existe en el dispositivo principal. Puede especificar qué valores de configuración desea restablecer a los valores predeterminados y los nuevos valores de configuración que se van a fusionar en el dispositivo principal. Cuando un dispositivo principal recibe implementaciones para distintos destinos y cada una especifica versiones de componentes compatibles, el dispositivo principal aplica las actualizaciones de configuración en orden según la fecha y hora en que se creó la implementación. Para obtener más información, consulte Actualización de las configuraciones de los componentes.

    importante

    Cuando implementa un componente, AWS IoT Greengrass instala las últimas versiones compatibles de todas las dependencias de ese componente. Por este motivo, es posible que las nuevas versiones con parches de los componentes públicos proporcionados por AWS se implementen de forma automática en sus dispositivos principales si agrega nuevos dispositivos a un grupo de elementos o si actualiza la implementación destinada a esos dispositivos. Algunas actualizaciones automáticas, como las actualizaciones de núcleo, pueden provocar que los dispositivos se reinicien de forma inesperada.

    Para evitar actualizaciones no deseadas de un componente que se ejecuta en su dispositivo, recomendamos que incluya directamente la versión que prefiera de ese componente cuando cree una implementación. Para obtener más información sobre el comportamiento de las actualizaciones para el software AWS IoT Greengrass Core, consulte Actualización del software AWS IoT Greengrass Core (OTA).

  • Políticas de implementación

    Defina cuándo es seguro implementar una configuración y qué hacer si se produce un error en la implementación. Puede especificar si desea o no esperar a que los componentes informen que se pueden actualizar. También puede especificar si se debe restablecer o no los dispositivos a su configuración anterior si aplican una implementación que no funciona.

  • Configuración de la detención

    Defina cómo y cuándo detener una implementación. La implementación se detiene y falla si se cumplen los criterios que usted defina. Por ejemplo, puede configurar una implementación para que se detenga si un porcentaje de dispositivos falla cuando la aplica después de recibir un número mínimo de dispositivos.

  • Configuración de despliegue

    Defina la velocidad a la que una implementación se lleva a cabo en dispositivos de destino. Puede configurar un aumento de velocidad exponencial con límites de velocidad mínimos y máximos.

  • Configuración del tiempo de espera

    Defina la cantidad máxima de tiempo que tiene cada dispositivo para aplicar una implementación. Si un dispositivo supera la duración que usted especifique, no podrá aplicar la implementación.

importante

Los componentes personalizados pueden definir los artefactos en los bucket de S3. Cuando el software AWS IoT Greengrass Core implementa un componente, descarga los artefactos del componente de la Nube de AWS. Los roles de los dispositivos principales no permiten el acceso a los buckets de S3 de forma predeterminada. Para implementar componentes personalizados que definan los artefactos en un bucket de S3, el rol del dispositivo principal debe conceder permisos para descargar los artefactos de ese bucket. Para obtener más información, consulte Cómo permitir el acceso a los buckets de S3 para los artefactos del componente.