Administre las implementaciones y los componentes locales - 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.

Administre las implementaciones y los componentes locales

nota

Esta característica está disponible para la versión 2.6.0 y versiones posteriores del componente núcleo de Greengrass.

Utilice el servicio CLI IPC de Greengrass para administrar las implementaciones locales y los componentes de Greengrass en el dispositivo principal.

Para utilizar estas operaciones de IPC, incluya la versión 2.6.0 o posterior del componente CLI de Greengrass como dependencia en su componente personalizado. A continuación, puede utilizar las operaciones de IPC en sus componentes personalizados para hacer lo siguiente:

  • Cree implementaciones locales para modificar y configurar los componentes de Greengrass en el dispositivo principal.

  • Reinicie y detenga los componentes de Greengrass en el dispositivo principal.

  • Genere una contraseña que pueda usar para iniciar sesión en la consola de depuración local.

Versiones mínimas de SDK

En la siguiente tabla, se enumeran las versiones mínimas de SDK para dispositivos con AWS IoT que debe utilizar para interactuar con el servicio CLI IPC de Greengrass.

Autorización

Para utilizar el servicio CLI IPC de Greengrass en un componente personalizado, debe definir políticas de autorización que permitan a su componente administrar las implementaciones y los componentes locales. Para obtener información sobre cómo definir las políticas de autorización, consulte Autoriza a los componentes a realizar IPC operaciones.

Las políticas de autorización de la CLI de Greengrass tienen las siguientes propiedades.

Identificador de servicio IPC: aws.greengrass.Cli

Operación Descripción Recursos

aws.greengrass#CreateLocalDeployment

Permite que un componente cree una implementación local en el dispositivo principal.

*

aws.greengrass#ListLocalDeployments

Permite que un componente enumere las implementaciones locales en el dispositivo principal.

*

aws.greengrass#GetLocalDeploymentStatus

Permite que un componente obtenga el estado de una implementación local en el dispositivo principal.

Un ID de implementación local, o *, que permita el acceso a todas las implementaciones locales.

aws.greengrass#ListComponents

Permite que un componente enumere los componentes del dispositivo principal.

*

aws.greengrass#GetComponentDetails

Permite que un componente obtenga detalles sobre un componente del dispositivo principal.

Un nombre de componente, por ejemplo: com.example.HelloWorld o *, que permita el acceso a todos los componentes.

aws.greengrass#RestartComponent

Permite que un componente reinicie un componente del dispositivo principal.

Un nombre de componente, por ejemplo: com.example.HelloWorld o *, que permita el acceso a todos los componentes.

aws.greengrass#StopComponent

Permite que un componente detenga a un componente del dispositivo principal.

Un nombre de componente, por ejemplo: com.example.HelloWorld o *, que permita el acceso a todos los componentes.

aws.greengrass#CreateDebugPassword

Permite que un componente genere una contraseña para iniciar sesión en el componente de la consola de depuración local.

*

ejemplo Ejemplo de política de autorización

Los siguientes ejemplos de políticas de autorización permiten a un componente crear implementaciones locales, ver todas las implementaciones y componentes locales, además de reiniciar y detener un componente denominado com.example.HelloWorld.

{ "accessControl": { "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:1": { "policyDescription": "Allows access to create local deployments and view deployments and components.", "operations": [ "aws.greengrass#CreateLocalDeployment", "aws.greengrass#ListLocalDeployments", "aws.greengrass#GetLocalDeploymentStatus", "aws.greengrass#ListComponents", "aws.greengrass#GetComponentDetails" ], "resources": [ "*" ] } }, "aws.greengrass.Cli": { "com.example.MyLocalManagerComponent:cli:2": { "policyDescription": "Allows access to restart and stop the Hello World component.", "operations": [ "aws.greengrass#RestartComponent", "aws.greengrass#StopComponent" ], "resources": [ "com.example.HelloWorld" ] } } } }

CreateLocalDeployment

Cree o actualice una implementación local mediante recetas de componentes, artefactos y argumentos de tiempo de ejecución específicos.

Esta operación ofrece la misma funcionalidad que el comando crear implementación de la CLI de Greengrass.

Solicitud

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

recipeDirectoryPath (Python: recipe_directory_path)

(Opcional) La ruta absoluta a la carpeta que contiene los archivos de recetas de los componentes.

artifactDirectoryPath (Python: artifact_directory_path)

(Opcional) La ruta absoluta a la carpeta que contiene los archivos de artefactos que se incluirán en la implementación. La carpeta de artefactos debe contener la siguiente estructura de carpetas:

/path/to/artifact/folder/component-name/component-version/artifacts
rootComponentVersionsToAdd (Python: root_component_versions_to_add)

(Opcional) Las versiones de los componentes que se van a instalar en el dispositivo principal. Este objeto, ComponentToVersionMap, es un mapa que contiene los siguientes pares clave-valor:

key

El nombre del componente.

value

Esta es la versión del componente.

rootComponentsToRemove (Python: root_components_to_remove)

(Opcional) Los componentes que se van a desinstalar del dispositivo principal. Especifique una lista en la que cada entrada sea el nombre de un componente.

componentToConfiguration (Python: component_to_configuration)

(opcional) La configuración se actualiza para cada componente en la implementación. Este objeto, ComponentToConfiguration, es un mapa que contiene los siguientes pares clave-valor:

key

El nombre del componente.

value

La configuración actualiza el objeto JSON para el componente. El objeto JSON debe incluir el siguiente formato.

{ "MERGE": { "config-key": "config-value" }, "RESET": [ "path/to/reset/" ] }

Para obtener más información acerca de las actualizaciones de configuración, consulte Actualización de las configuraciones de los componentes.

componentToRunWithInfo (Python: component_to_run_with_info)

(Opcional) La configuración del tiempo de ejecución de cada componente de la implementación. Esta configuración incluye el usuario del sistema que es propietario de los procesos de cada componente y los límites del sistema que se aplican a cada componente. Este objeto, ComponentToRunWithInfo, es un mapa que contiene los siguientes pares clave-valor:

key

El nombre del componente.

value

La configuración de tiempo de ejecución del componente. Si omite un parámetro de configuración de tiempo de ejecución, el software principal de AWS IoT Greengrass utilizará los valores predeterminados que configure en el núcleo de Greengrass. Este objeto, RunWithInfo, contiene la siguiente información:

posixUser (Python: posix_user)

(Opcional) El usuario del sistema POSIX y, opcionalmente, el grupo que se utilizarán para ejecutarse en dispositivos principales de Linux. El usuario y el grupo, si se especifica, deben existir en cada dispositivo principal de Linux. Especifique el usuario y el grupo separados por dos puntos (:) con el siguiente formato: user:group. El grupo es opcional. Si no especifica un grupo, el software principal de AWS IoT Greengrass utiliza el usuario principal del grupo. Para obtener más información, consulte Configuración del usuario que ejecuta los componentes.

windowsUser (Python: windows_user)

(Opcional) El usuario de Windows que se utilizará para ejecutar este componente en los dispositivos principales de Windows. El usuario debe existir en cada dispositivo principal de Windows y su nombre y contraseña deben estar en la instancia del Administrador de credenciales de la cuenta LocalSystem. Para obtener más información, consulte Configuración del usuario que ejecuta los componentes.

systemResourceLimits (Python: system_resource_limits)

(Opcional) Los límites de recursos del sistema que se aplicarán a los procesos de este componente. Puede aplicar límites de recursos del sistema a los componentes de Lambda genéricos y no contenerizados. Para obtener más información, consulte Configuración de los límites de recursos del sistema para los componentes.

AWS IoT Greengrass actualmente no admite esta característica en los dispositivos principales de Windows.

Este objeto, SystemResourceLimits, contiene la siguiente información:

cpus

(Opcional) La cantidad máxima de tiempo de CPU que los procesos de un componente pueden utilizar en el dispositivo principal. El tiempo total de CPU de un dispositivo principal equivale a la cantidad de núcleos de CPU del dispositivo. Por ejemplo, en un dispositivo principal con 4 núcleos de CPU, puede establecer este valor en 2 para limitar los procesos del componente al 50 % de uso de cada núcleo de CPU. En un dispositivo con 1 núcleo de CPU, puede establecer este valor en 0.25 para limitar los procesos del componente al 25 % de uso de la CPU. Si se establece este valor en un número mayor que la cantidad de núcleos de la CPU, el software principal de AWS IoT Greengrass no limita el uso de la CPU del componente.

memory

(Opcional) La cantidad máxima de RAM, expresada en kilobytes, que los procesos de un componente pueden utilizar en el dispositivo principal.

groupName (Python: group_name)

(Opcional) El nombre del grupo de elementos al que se va a dirigir esta implementación.

Respuesta

Esta respuesta de operación contiene la siguiente información:

deploymentId (Python: deployment_id)

El ID de la implementación local que creó la solicitud.

ListLocalDeployments

Obtiene el estado de las últimas 10 implementaciones locales.

Esta operación ofrece la misma funcionalidad que el comando enumerar implementación de la CLI de Greengrass.

Solicitud

Esta solicitud de la operación no tiene parámetros.

Respuesta

Esta respuesta de operación contiene la siguiente información:

localDeployments (Python: local_deployments)

La lista de implementaciones locales. Cada objeto de esta lista es un objeto LocalDeployment que contiene la siguiente información:

deploymentId (Python: deployment_id)

El ID de la implementación local.

status

El estado de la implementación local. Esta enumeración, DeploymentStatus, tiene los siguientes valores:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

GetLocalDeploymentStatus

Obtiene el estado de una implementación local.

Esta operación ofrece la misma funcionalidad que el comando estado de implementación de la CLI de Greengrass.

Solicitud

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

deploymentId (Python: deployment_id)

El ID de la implementación local que se va a obtener.

Respuesta

Esta respuesta de operación contiene la siguiente información:

deployment

La implementación local. Este objeto, LocalDeployment, contiene la siguiente información:

deploymentId (Python: deployment_id)

El ID de la implementación local.

status

El estado de la implementación local. Esta enumeración, DeploymentStatus, tiene los siguientes valores:

  • QUEUED

  • IN_PROGRESS

  • SUCCEEDED

  • FAILED

ListComponents

Obtiene el nombre, la versión, el estado y la configuración de cada componente raíz del dispositivo principal. Un componente raíz es un componente que se especifica en una implementación. Esta respuesta no incluye los componentes que se instalan como dependencias de otros componentes.

Esta operación ofrece la misma funcionalidad que el comando component list de la CLI de Greengrass.

Solicitud

Esta solicitud de la operación no tiene parámetros.

Respuesta

Esta respuesta de operación contiene la siguiente información:

components

La lista de componentes raíz del dispositivo principal. Cada objeto de esta lista es un objeto ComponentDetails que contiene la siguiente información:

componentName (Python: component_name)

El nombre del componente.

version

Esta es la versión del componente.

state

El estado del componente. Este estado puede ser uno de los siguientes:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

La configuración del componente como objeto JSON.

GetComponentDetails

Obtiene la versión, el estado y la configuración de un componente del dispositivo principal.

Esta operación ofrece la misma funcionalidad que el comando detallar implementación de la CLI de Greengrass.

Solicitud

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

componentName (Python: component_name)

El nombre del componente que se obtendrá.

Respuesta

Esta respuesta de operación contiene la siguiente información:

componentDetails (Python: component_details)

Los detalles del componente. Este objeto, ComponentDetails, contiene la siguiente información:

componentName (Python: component_name)

El nombre del componente.

version

Esta es la versión del componente.

state

El estado del componente. Este estado puede ser uno de los siguientes:

  • BROKEN

  • ERRORED

  • FINISHED

  • INSTALLED

  • NEW

  • RUNNING

  • STARTING

  • STOPPING

configuration

La configuración del componente como objeto JSON.

RestartComponent

Reinicia un componente en el dispositivo principal.

nota

Si bien puede reiniciar cualquier componente, le recomendamos que reinicie solo los componentes genéricos.

Esta operación ofrece la misma funcionalidad que el comando reiniciar implementación de la CLI de Greengrass.

Solicitud

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

componentName (Python: component_name)

El nombre del componente.

Respuesta

Esta respuesta de operación contiene la siguiente información:

restartStatus (Python: restart_status)

El estado de la solicitud reiniciada. El estado de la solicitud puede ser uno de los siguientes:

  • SUCCEEDED

  • FAILED

message

Un mensaje sobre por qué el componente no se pudo reiniciar, si la solicitud falló.

StopComponent

Detiene los procesos de un componente en el dispositivo principal.

nota

Si bien puede detener cualquier componente, le recomendamos que detenga solo los componentes genéricos.

Esta operación ofrece la misma funcionalidad que el comando detener implementación de la CLI de Greengrass.

Solicitud

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

componentName (Python: component_name)

El nombre del componente.

Respuesta

Esta respuesta de operación contiene la siguiente información:

stopStatus (Python: stop_status)

El estado de la solicitud de detención. El estado de la solicitud puede ser uno de los siguientes:

  • SUCCEEDED

  • FAILED

message

Un mensaje sobre por qué el componente no se pudo detener, si la solicitud falló.

CreateDebugPassword

Genera una contraseña asignada al azar que puede usar para iniciar sesión en el componente de la consola de depuración local. La contraseña caduca 8 horas después de generarse.

Esta operación ofrece la misma funcionalidad que el comando get-debug-password de la CLI de Greengrass.

Solicitud

Esta solicitud de la operación no tiene parámetros.

Respuesta

Esta respuesta de operación contiene la siguiente información:

username

El nombre de usuario que se utilizará para iniciar sesión.

password

La contraseña que se utilizará para iniciar sesión.

passwordExpiration (Python: password_expiration)

La hora en que caduca la contraseña.

certificateSHA256Hash (Python: certificate_sha256_hash)

La huella digital SHA-256 del certificado autofirmado que utiliza la consola de depuración local cuando HTTPS está activado. Cuando abra la consola de depuración local, utilice esta huella digital para comprobar que el certificado es legítimo y que la conexión es segura.

certificateSHA1Hash (Python: certificate_sha1_hash)

La huella digital SHA-1 del certificado autofirmado que utiliza la consola de depuración local cuando HTTPS está activado. Cuando abra la consola de depuración local, utilice esta huella digital para comprobar que el certificado es legítimo y que la conexión es segura.