Implementación de grupos de AWS IoT Greengrass en un núcleo de AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.

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 grupos de AWS IoT Greengrass en un núcleo de AWS IoT Greengrass

Use los grupos de AWS IoT Greengrass para organizar entidades en el entorno perimetral. También puede utilizar los grupos para controlar cómo interactúan las entidades del grupo entre sí y con el Nube de AWS. Por ejemplo, solo las funciones de Lambda del grupo se implementan para ejecutarse de manera local y solo los dispositivos del grupo pueden comunicarse mediante el servidor MQTT local.

Un grupo debe incluir un núcleo, que es un dispositivo de AWS IoT que ejecuta el software AWS IoT Greengrass Core. El núcleo actúa como una gateway perimetral y proporciona funcionalidades de AWS IoT Core en el entorno perimetral. En función de las necesidades de su negocio, también puede añadir a un grupo las siguientes entidades:

Puede administrar el grupo de Greengrass en la Nube de AWS e implementarlo después en un núcleo. La implementación copia la configuración del grupo en el archivo group.json del dispositivo del núcleo. Este archivo se encuentra en greengrass-root/ggc/deployments/group.

Definición en la nube del grupo de Greengrass implementado en un dispositivo del núcleo.
nota

Durante una implementación, el proceso del demonio de Greengrass del dispositivo del núcleo se detiene y después se reinicia.

Implementación de grupos desde la consola de AWS IoT

Puede implementar un grupo y administrar sus implementaciones desde la página de configuración del grupo de la consola AWS IoT.

nota

Para abrir esta página en la consola, seleccione Dispositivos Greengrass, luego Grupos (V1) y, a continuación, en Grupos de Greengrass, seleccione su grupo.

Para implementar la versión actual del grupo
  • Desde la página de configuración de grupo, elija Implementaciones.

Para ver el historial de implementaciones del grupo

El historial de implementaciones de un grupo incluye la fecha y la hora, la versión del grupo y el estado de cada intento de implementación.

  1. Desde la página de configuración de grupo, elija la pestaña Implementaciones.

  2. Para ver más información sobre una implementación, incluidos los mensajes de error, seleccione Implementaciones en la consola AWS IoT, en Dispositivos de Greengrass.

Para volver a implementar una implementación de grupo

Es posible que desee repetir una implementación si se produce un error en la implementación actual o si quiere volver a otra versión del grupo.

  1. Desde la consola de AWS IoT, seleccione dispositivos de Greengrass y, a continuación, Grupos (V1).

  2. Elija la pestaña Implementaciones.

  3. Elija la implementación que desea volver a implementar y elija Reimplementar.

Para restablecer las implementaciones de grupo

Es posible que desee restablecer las implementaciones de grupo para mover o eliminar un grupo o para eliminar la información de implementación. Para obtener más información, consulte Restablecimiento de implementaciones.

  1. Desde la consola de AWS IoT, seleccione dispositivos de Greengrass y, a continuación, Grupos (V1).

  2. Elija la pestaña Implementaciones.

  3. Elija la implementación que desea restablecer y elija Restablecer implementaciones.

Implementación de grupos con la API de AWS IoT Greengrass

La API de AWS IoT Greengrass proporciona las siguientes acciones para implementar grupos de AWS IoT Greengrass y administrar implementaciones de grupo. Puede llamar a estas acciones desde la AWS CLI, la API de AWS IoT Greengrass o el SDK de AWS.

Acción de Descripción

CreateDeployment

Crea una implementación Redeployment o NewDeployment.

Es posible que desee repetir una implementación si se produce un error en la implementación actual. O es posible que desee repetirla para revertir a otra versión del grupo.

GetDeploymentStatus

Devuelve el estado de una implementación: Building, InProgress, Success o Failure.

Puedes configurar EventBridge los eventos de Amazon para recibir notificaciones de despliegue. Para obtener más información, consulte Obtención de notificaciones de implementación.

ListDeployments

Devuelve el historial de implementaciones del grupo.

ResetDeployments

Restablece las implementaciones del grupo.

Es posible que desee restablecer las implementaciones de grupo para mover o eliminar un grupo o para eliminar la información de implementación. Para obtener más información, consulte Restablecimiento de implementaciones.

nota

Para obtener información acerca de las operaciones de implementación por lotes, consulte Creación de implementaciones de grupos por lotes.

Obtener el ID del grupo

El ID del grupo se usa comúnmente en acciones de la API. Puede utilizar la ListGroupsacción para buscar el ID del grupo objetivo en su lista de grupos. Por ejemplo, en la AWS CLI, utilice el comando list-groups.

aws greengrass list-groups

También puede incluir la opción query para filtrar los resultados. Por ejemplo:

  • Para obtener el grupo creado más recientemente:

    aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
  • Para obtener un grupo por nombre:

    aws greengrass list-groups --query "Groups[?Name=='MyGroup']"

    No es necesario que los nombres de grupo sean únicos, por lo que podrían devolverse varios grupos.

A continuación se muestra un ejemplo de respuesta de list-groups. La información de cada grupo incluye el ID del grupo (en la propiedad Id) y el ID de la versión de grupo más reciente (en la propiedad LatestVersion). Para obtener otros ID de versión para un grupo, usa el ID de grupo con ListGroupVersions.

nota

También puede encontrar estos valores en la consola de AWS IoT. El ID de grupo se muestra en la página Settings (Configuración) del grupo. Los ID de versión del grupo se muestran en la pestaña Implementaciones del grupo.

{ "Groups": [ { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "Name": "MyFirstGroup", "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z", "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE", "CreationTimestamp": "2019-11-11T05:47:31.435Z", "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE" }, { "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "Name": "GreenhouseSensors", "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z", "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE", "CreationTimestamp": "2020-01-07T19:58:36.774Z", "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE", "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE" }, ... ] }

Si no especifica una Región de AWS, los comandos de la AWS CLI utilizan la región predeterminada de su perfil. Para devolver grupos en una región distinta, incluya la opción de región. Por ejemplo:

aws greengrass list-groups --region us-east-1

Información general sobre el modelo de objetos de grupo de AWS IoT Greengrass

Cuando se programa con la API de AWS IoT Greengrass, resulta útil conocer el modelo de objetos de grupo de Greengrass.

Grupos

En la API de AWS IoT Greengrass, el objeto Group de nivel superior se compone de metadatos y de una lista de objetos GroupVersion. Los objetos GroupVersion están asociados con un objeto Group a través de su ID.

Diagrama de un grupo, que se compone de metadatos y una lista de versiones de grupo.

Versiones del grupo

Los objetos GroupVersion definen la pertenencia a los grupos. Cada GroupVersion hace referencia a un objeto CoreDefinitionVersion y a otras versiones de componentes a través de su ARN. Estas referencias determinan qué entidades se van a incluir en el grupo.

Diagrama de una versión del grupo que hace referencia a otros tipos de versiones a través de su ARN.

Por ejemplo, para incluir tres funciones de Lambda, un dispositivo y dos suscripciones en el grupo, GroupVersion hace referencia a:

  • El CoreDefinitionVersion que contiene el núcleo requerido.

  • FunctionDefinitionVersion que contiene las tres funciones.

  • La DeviceDefinitionVersion que contiene el dispositivo de cliente.

  • SubscriptionDefinitionVersion que contiene las dos suscripciones.

El objeto GroupVersion implementado en un dispositivo de núcleo determina las entidades que están disponibles en el entorno local y cómo pueden interactuar.

Componentes del grupo

Los componentes que añada a los grupos tienen una jerarquía de tres niveles:

  • Una definición que hace referencia a una lista de DefinitionVersionobjetos de un tipo determinado. Por ejemplo, un objeto DeviceDefinition hace referencia a una lista de objetos DeviceDefinitionVersion.

  • A DefinitionVersionque contiene un conjunto de entidades de un tipo determinado. Por ejemplo, un objeto DeviceDefinitionVersion contiene una lista de objetos Device.

  • Entidades individuales que definen sus propiedades y su comportamiento. Por ejemplo, un objeto Device define el ARN del dispositivo de cliente correspondiente en el registro de AWS IoT, el ARN de su certificado de dispositivo y si su instantánea local se sincroniza automáticamente con la nube.

    Puede añadir los siguientes tipos de entidades a un grupo:

En el siguiente ejemplo, DeviceDefinition hace referencia a tres objetos DeviceDefinitionVersion, cada uno de los cuales contiene varios objetos Device. En los grupos, solo se utiliza un DeviceDefinitionVersion cada vez.

Un diagrama de una jerarquía de dispositivos, que consta de DeviceDefinition DeviceDefinitionVersion, y objetos de dispositivo.

Actualización de grupos

En la API de AWS IoT Greengrass, se utilizan versiones para actualizar la configuración de un grupo. Las versiones son inmutables, por lo que para añadir, eliminar o cambiar los componentes del grupo, debe crear DefinitionVersionobjetos que contengan entidades nuevas o actualizadas.

Puede asociar DefinitionVersionsobjetos nuevos a objetos de definición nuevos o existentes. Por ejemplo, puede utilizar la acción CreateFunctionDefinition para crear un objeto FunctionDefinition que incluya el objeto FunctionDefinitionVersion como versión inicial, o puede utilizar la acción CreateFunctionDefinitionVersion y hacer referencia a un objeto FunctionDefinition existente.

Tras crear los componentes del grupo, se crea uno GroupVersion que contenga todos los DefinitionVersionobjetos que se desean incluir en el grupo. A continuación, debe implementar GroupVersion.

Para implementar un objeto GroupVersion, debe hacer referencia a un objeto CoreDefinitionVersion que contenga exactamente un objeto Core. Todas las entidades a las que se haga referencia deben ser miembros del grupo. Además, debe haber un rol de servicio de Greengrass asociado a su Cuenta de AWS en la Región de AWS en la que va a implementar el GroupVersion.

nota

Las acciones Update de la API se utilizan para cambiar el nombre de un objeto Group o Definition del componente.

Actualización de entidades que hacen referencia a recursos de AWS

Las funciones de Lambda de Greengrass y los recursos secretos definen propiedades específicas de Greengrass y también hacen referencia a los recursos de AWS correspondientes. Para actualizar estas entidades, puede realizar cambios en el recurso de AWS correspondiente en lugar de en los objetos de Greengrass. Por ejemplo, las funciones DE Lambda hacen referencia a una función de AWS Lambda y también definen el ciclo de vida y otras propiedades específicas del grupo de Greengrass.

  • Para actualizar el código de la función de Lambda o las dependencias empaquetadas, realice los cambios en AWS Lambda. Durante la siguiente implementación del grupo, estos cambios se recuperarán de AWS Lambda y se copiarán en él entorno local.

  • Para actualizar las propiedades específicas de Greengrass, debe crear un objeto FunctionDefinitionVersion que contenga las propiedades Function actualizadas.

nota

Las funciones de Lambda de Greengrass pueden hacer referencia a una función de Lambda por el ARN del alias o el ARN de versión. Si hace referencia al ARN del alias (recomendado), no es necesario actualizar FunctionDefinitionVersion (ni SubscriptionDefinitionVersion) al publicar una nueva versión de la función en AWS Lambda. Para obtener más información, consulte Referencia a funciones de Lambda por alias o versión.

Véase también