Llamar a la API de comprobación de estado local - 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.

Llamar a la API de comprobación de estado local

AWS IoT Greengrass contiene una API HTTP local que proporciona una instantánea del estado actual de los procesos de trabajo locales que fueron iniciados por AWS IoT Greengrass. Esta instantánea incluye funciones de Lambda definidas por el usuario y funciones de Lambda del sistema. Las funciones de Lambda del sistema son componentes del software de AWS IoT Greengrass Core. Se ejecutan como procesos de trabajo locales en el dispositivo principal y gestionan operaciones como el enrutamiento de mensajes, la sincronización virtual local y la detección automática de direcciones IP.

La API de comprobación de estado admite las siguientes solicitudes:

Las solicitudes se envían de forma local en el dispositivo y no requieren conexión a Internet.

Obtener información sobre la salud de todos los trabajadores

Envíe una solicitud de GET para obtener información sobre la salud de todos los trabajadores.

  • Sustituya el puerto por el número de puerto del IPC.

GET http://localhost:port/2016-11-01/health/workers
port

El número de puerto del proxy.

El valor puede variar entre 1024 y 65535. El valor predeterminado es 8000.

Para cambiar este número de puerto, puede actualizar la propiedad ggDaemonPort del archivo config.json. Para obtener más información, consulte Archivo de configuración de AWS IoT Greengrass Core.

Ejemplo de solicitud

La siguiente solicitud curl de ejemplo obtiene información de salud de todos los trabajadores.

curl http://localhost:8000/2016-11-01/health/workers

Respuesta de JSON

Esta solicitud devuelve un conjunto de objetos de información sobre la salud de los trabajadores.

Respuesta de ejemplo

En el siguiente ejemplo de respuesta se enumeran los objetos de información de salud de todos los procesos de trabajo iniciados por AWS IoT Greengrass.

[ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:::function:GGSecretManager:1", "WorkerId": "a9916cc2-1b4d-4f0e-4b12-b1872EXAMPLE", "ProcessId": "9798", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073EXAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" }, ... ]

Obtener información sobre la salud de trabajadores específicos

Envíe una solicitud de POST para obtener información sobre la salud de trabajadores específicos. Sustituya el puerto por el número de puerto del IPC. El valor predeterminado es 8000.

POST http://localhost:port/2016-11-01/health/workers

Ejemplo de solicitud

La siguiente solicitud curl de ejemplo obtiene información de salud de trabajadores específicos.

curl --data "@body.json" http://localhost:8000/2016-11-01/health/workers

A continuación se muestra un ejemplo del cuerpo de la solicitud de body.json:

{ "FuncArns": [ "arn:aws:lambda:::function:GGShadowService:1", "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3" ] }

El cuerpo de la solicitud contiene una FuncArns matriz.

FuncArns

Una lista de nombres de recursos de Amazon (ARN) para las funciones de Lambda que representan a los trabajadores de destino.

  • Para las funciones de Lambda definidas por el usuario, especifique el ARN de la versión actualmente implementada. Si ha agregado funciones de Lambda al grupo mediante un ARN de alias, puede usar la solicitud GET para obtener todos los trabajadores y, a continuación, elegir los ARN que desea consultar.

  • Para las funciones de Lambda del sistema, especifique el ARN de la función de Lambda correspondiente. Para obtener más información, consulte Funciones de Lambda del sistema.

Tipo: matriz de cadenas

Longitud mínima: 1

Longitud máxima: el número total de trabajadores iniciados por AWS IoT Greengrass en el dispositivo principal.

Respuesta de JSON

Esta solicitud devuelve una matriz Workers y una matriz InvalidArns.

Workers

Una lista de objetos de información de salud para los trabajadores especificados.

Tipo: conjunto de objetos de información de salud

InvalidArns

Una lista de los ARN de funciones que no son válidos, incluidos los ARN de funciones que no tienen trabajadores asociados.

Tipo: matriz de cadenas

Respuesta de ejemplo

La siguiente respuesta de ejemplo enumera los objetos de información sanitaria de los trabajadores especificados.

{ "Workers": [ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073ESAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" } ], "InvalidArns" : [ "some-malformed-arn", "arn:aws:lambda:us-west-2:123456789012:function:some-unknown-function:1" ] }

Esta solicitud devuelve los siguientes errores:

400 Solicitud no válida

El cuerpo de la solicitud está malformado. Para resolver este problema, utilice el siguiente formato y vuelva a enviar la solicitud:

{"FuncArns":["function-1-arn","function-2-arn"]}
400 La solicitud supera el número máximo de trabajadores

La cantidad de ARN especificada en la matriz FuncArns supera la cantidad de trabajadores.

Información de salud de los trabajadores

Un objeto de información sanitaria contiene las siguientes propiedades:

FuncArn

El ARN de la funcióna de Lambda del sistema que representa al trabajador.

Escriba: string

WorkerId

El ID del trabajador. Esto es útil para depurar prototipos. El archivo runtime.log y los registros de la función de Lambda contienen el ID del trabajador, por lo que esta propiedad puede resultar especialmente útil para depurar una función de Lambda bajo demanda que activa varias instancias.

Escriba: string

ProcessId

El ID de proceso (PID) del proceso de trabajo.

Escriba: int

WorkerState

El estado del trabajador.

Escriba: string

A continuación se indican los posibles estados de los trabajadores:

Working

Procesando un mensaje.

Waiting

Esperando un mensaje. Se aplica a las funciones de Lambda de larga duración que se ejecutan como un daemon o un proceso independiente.

Starting

Se puso en marcha, para empezar.

FailedInitialization

No se pudo inicializar.

Terminated

Detenido por el daemon de Greengrass

NotStarted

No se pudo iniciar y se realizó otro intento de inicio.

Initialized

Se inicializó correctamente.

Funciones de Lambda del sistema

Puede solicitar información de estado para las siguientes funciones de Lambda del sistema:

GGCloudSpooler

Administra la cola de los mensajes MQTT que tienen AWS IoT Core como origen o destino.

ARN: arn:aws:lambda:::function:GGCloudSpooler:1

GGConnManager

Enruta los mensajes MQTT entre los dispositivos principales y clientes de Greengrass.

ARN: arn:aws:lambda:::function:GGConnManager

GGDeviceCertificateManager

Escucha los cambios en los AWS IoT puntos de conexión IP del núcleo y genera el certificado del lado del servidor que GGConnManager utiliza para la autenticación mutua.

ARN: arn:aws:lambda:::function:GGDeviceCertificateManager

GGIPDetector

Gestiona la detección automática de direcciones IP que permite a los dispositivos del grupo Greengrass descubrir el dispositivo central Greengrass. Este servicio no se aplica cuando se proporcionan direcciones IP manualmente.

ARN: arn:aws:lambda:::function:GGIPDetector:1

GGSecretManager

Gestiona el almacenamiento seguro de los secretos locales y el acceso mediante Lambda y conectores definidos por el usuario.

ARN: arn:aws:lambda:::function:GGSecretManager:1

GGShadowService

Administra las sombras locales para los dispositivos cliente.

ARN: arn:aws:lambda:::function:GGShadowService

GGShadowSyncManager

Sincroniza las sombras locales con la Nube de AWS para el dispositivo principal y los dispositivos de lcliente, si la propiedad syncShadow del dispositivo está establecida en true.

ARN: arn:aws:lambda:::function:GGShadowSyncManager

GGStreamManager

Procesa los flujos de datos de forma local y realiza exportaciones automáticas al Nube de AWS.

ARN: arn:aws:lambda:::function:GGStreamManager:1

GGTES

El servicio de intercambio de fichas local que recupera las credenciales de IAM definidas en el rol de grupo Greengrass que el código local utiliza para acceder a los servicios AWS.

ARN: arn:aws:lambda:::function:GGTES