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.
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:
-
Envíe una solicitud
GET
para obtener información sobre la salud de todos los trabajadores. -
Envíe una solicitud de
POST
para obtener información sobre la salud de trabajadores específicos.
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 IPC.
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 archivoconfig.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.
Ejemplo de respuesta
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 de 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
Ejemplo de respuesta
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ón de Lambda del sistema que representa al trabajador.
Tipo:
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.Tipo:
string
ProcessId
-
El ID de proceso (PID) del proceso de trabajo.
Tipo:
int
WorkerState
-
El estado del trabajador.
Tipo:
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 cliente, si la propiedad
syncShadow
del dispositivo está establecida entrue
.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