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 publicará actualizaciones que proporcionen características, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten en 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 características nuevas y es compatible con más plataformas.
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 de periferia. También puede utilizar los grupos para controlar cómo interactúan las entidades del grupo entre sí y con la 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:
-
Dispositivos cliente. Se representan como objetos en el registro de AWS IoT. Estos dispositivos deben ejecutar FreeRTOS o deben utilizar el SDK de dispositivos de AWS IoT o la API de detección de AWS IoT Greengrass para obtener la información de conexión del núcleo. Solo los dispositivos cliente que son miembros del grupo pueden conectarse al núcleo.
Funciones de Lambda Son aplicaciones definidas por los usuarios sin servidor que ejecutan código en el núcleo. Las funciones de Lambda se crean en AWS Lambda y se hace referencia a ellas desde un grupo de Greengrass. Para obtener más información, consulte Ejecutar funciones de Lambda en el núcleo de AWS IoT Greengrass.
Conectores. Son aplicaciones predefinidas sin servidor que ejecutan código en el núcleo. Los conectores pueden integrarse con la infraestructura local, con protocolos de dispositivos, con AWS y con otros servicios en la nube. Para obtener más información, consulte Integración con servicios y protocolos mediante conectores de Greengrass.
Suscripciones. Definen los publicadores, los suscriptores y los temas (o asuntos) de MQTT que están autorizados para la comunicación con MQTT.
Recursos. Referencias a dispositivos y volúmenes locales, modelos de machine learning y secretos, que se utilizan para controlar el acceso por parte de Greengrass en funciones y conectores de Lambda.
Registros. Son configuraciones de registro de los componentes del sistema de AWS IoT Greengrass y las funciones de Lambda. Para obtener más información, consulte Monitorización con registros de AWS IoT Greengrass.
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
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 de 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.
-
Desde la página de configuración de grupo, elija la pestaña Implementaciones.
-
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.
-
Desde la consola de AWS IoT, seleccione dispositivos de Greengrass y, a continuación, Grupos (V1).
-
Elija la pestaña Implementaciones.
-
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.
-
Desde la consola de AWS IoT, seleccione dispositivos de Greengrass y, a continuación, Grupos (V1).
-
Elija la pestaña Implementaciones.
-
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 | Descripción |
---|---|
Crea una implementación 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. |
|
Devuelve el estado de una implementación: Puede configurar los eventos de Amazon EventBridge para recibir notificaciones de implementación. Para obtener más información, consulte Obtención de notificaciones de implementación. |
|
Devuelve el historial de implementaciones del grupo. |
|
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 acción ListGroups para buscar el ID del grupo de destino de la 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 de un grupo, utilice el ID del 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.
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.
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 objetos DefinitionVersion de un tipo determinado. Por ejemplo, un objeto
DeviceDefinition
hace referencia a una lista de objetosDeviceDefinitionVersion
.Un objeto DefinitionVersion que contiene un conjunto de entidades de un tipo determinado. Por ejemplo, un objeto
DeviceDefinitionVersion
contiene una lista de objetosDevice
.Entidades individuales que definen sus propiedades y su comportamiento. Por ejemplo, un objeto de
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.
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 componentes de un grupo, debe crear objetos DefinitionVersion que contengan entidades nuevas o actualizadas.
Puede asociar nuevos objetos DefinitionVersions con objetos Definition 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.
Después de crear los componentes del grupo, debe crear un objeto GroupVersion
que contenga todos los objetos DefinitionVersion que desee 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 propiedadesFunction
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
-
Comandos de AWS IoT Greengrass en la Referencia de comandos de AWS CLI