Chiamare l'API di controllo dello stato locale - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Chiamare l'API di controllo dello stato locale

AWS IoT Greengrasscontiene un'API HTTP locale che fornisce un'istantanea dello stato corrente dei processi di lavoro locali avviati daAWS IoT Greengrass. Questa istantanea include funzioni Lambda definite dall'utente e funzioni Lambda di sistema. Le funzioni di System Lambda fanno parte delAWS IoT GreengrassSoftware Core. Funzionano come processi di lavoro locale sul dispositivo core e gestiscono operazioni quali instradamento di messaggi, sincronizzazione shadow locale e rilevamento automatico dell'indirizzo IP.

L'API del controllo dello stato supporta le seguenti richieste:

Le richieste vengono inviate localmente sul dispositivo e non richiedono una connessione Internet.

Ottieni informazioni sanitarie per tutti i lavoratori

Inviare una richiestaGETrichiesta di ottenere informazioni sanitarie su tutti i lavoratori in corsa.

  • Replace (Sostituisci)portocon il numero di porta dell'IPC.

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

Il numero di porta dell'IPC.

Il valore può variare tra 1024 e 65535. Il valore predefinito è 8000.

Per modificare questo numero di porta, è possibile aggiornare ilggDaemonPortproprietà nelconfig.jsonfile. Per ulteriori informazioni, consulta la pagina File di configurazione di AWS IoT Greengrass Core .

Richiesta di esempio

L'esempio seguentecurlrequest ottiene informazioni sanitarie per tutti i lavoratori.

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

Risposta JSON

Questa richiesta restituisce un array diinformazioni sulla salute dei lavoratoriobjects.

Risposta di esempio

La seguente risposta di esempio elenca gli oggetti di informazioni sullo stato per tutti i processi di lavoro avviati daAWS 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" }, ... ]

Ottieni informazioni sanitarie su determinati lavoratori

Inviare una richiestaPOSTrichiesta di ottenere informazioni sanitarie su determinati lavoratori. Replace (Sostituisci)portocon il numero di porta dell'IPC. Il valore di default è 8000.

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

Richiesta di esempio

L'esempio seguentecurlrequest ottiene informazioni sanitarie per i lavoratori specificati.

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

Ecco un esempio:body.jsoncorpo della richiesta:

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

Il corpo della richiesta contiene unFuncArnsmatrice.

FuncArns

Un elenco di Amazon Resource Name (ARN) per le funzioni Lambda che rappresentano i lavoratori di destinazione.

  • Per funzioni Lambda definite dall'utente, specifica l'ARN della versione attualmente distribuita. Se sono state aggiunte funzioni Lambda al gruppo utilizzando un ARN alias, è possibile utilizzare la richiesta GET per ottenere tutti i lavoratori e quindi scegliere gli ARN per i quali si desidera eseguire la query.

  • Per le funzioni Lambda di sistema, specifica l'ARN della funzione Lambda corrispondente. Per ulteriori informazioni, consulta la pagina Funzioni System Lambda .

Tipo: Array of Strings

Lunghezza minima: 1

Lunghezza massima: Il numero totale di lavoratori avviati daAWS IoT Greengrasssul dispositivo core.

Risposta JSON

Questa richiesta restituisce unWorkersmatrice e unInvalidArnsmatrice.

Workers

Un elenco di oggetti di informazioni sanitarie per i lavoratori specificati.

Tipo: matrice dioggetti di informazione sanitaria

InvalidArns

Un elenco di ARN di funzioni non validi, inclusi gli ARN di funzione che non hanno lavoratori associati.

Tipo: Array of Strings

Risposta di esempio

I seguenti elenchi di risposte di esempiooggetti di informazione sanitariaper i lavoratori specificati.

{ "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" ] }

Questa richiesta restituisce i seguenti errori:

400 Richiesta non valida

Il corpo della richiesta è errato. Per risolvere il problema, usa il formato seguente e invia di nuovo la richiesta:

{"FuncArns":["function-1-arn","function-2-arn"]}
400 La richiesta supera il numero massimo di lavoratori

Il numero di ARN specificato nellaFuncArnsarray supera il numero di lavoratori.

Informazioni sulla salute dei lavoratori

Un oggetto di informazioni sulla salute include le seguenti proprietà:

FuncArn

L'ARN della funzione Lambda di sistema che rappresenta il worker.

Tipo: string

WorkerId

L'ID del lavoratore. Questa proprietà può essere utile per il debugging. Laruntime.loge i log delle funzioni Lambda contengono l'ID del lavoratore, quindi questa proprietà può essere particolarmente utile per eseguire il debug di una funzione Lambda su richiesta che attiva più istanze.

Tipo: string

ProcessId

L'ID del processo (PID) del processo di lavoro.

Tipo: int

WorkerState

Lo stato del lavoratore.

Tipo: string

Di seguito sono riportati alcuni stati di lavoro:

Working

Elaborazione di un messaggio.

Waiting

In attesa di un messaggio. Si applica a funzioni Lambda di lunga durata in esecuzione come daemon o processo autonomo.

Starting

Spun up, per iniziare.

FailedInitialization

Inizializzazione non riuscita.

Terminated

Arrestare dal daemon Greengrass

NotStarted

Impossibile avviare, effettuando un altro tentativo di avvio.

Initialized

Inizializzazione riuscita.

Funzioni System Lambda

È possibile richiedere informazioni sanitarie per le seguenti funzioni Lambda del sistema:

GGCloudSpooler

Gestisce la coda per i messaggi MQTT che hannoAWS IoT Corecome origine o destinazione.

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

GGConnManager

Instradamento di messaggi MQTT tra il dispositivo Greengrass core e i dispositivi client.

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

GGDeviceCertificateManager

Ascolta ilAWS IoTshadow per le modifiche agli endpoint IP del core e genera il certificato lato server utilizzato da GGConnManager per l'autenticazione reciproca.

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

GGIPDetector

Gestisce il rilevamento automatico dell'indirizzo IP che permette ai dispositivi del gruppo Greengrass di scoprire il dispositivo Greengrass core. Questo servizio non è applicabile quando fornisci manualmente gli indirizzi IP.

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

GGSecretManager

Gestisce l'archiviazione sicura dei segreti locali e l'accesso tramite Lambda e connettori definiti dall'utente.

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

GGShadowService

Gestisce le ombre locali per i dispositivi client.

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

GGShadowSyncManager

Sincronizza le ombre locali conCloud AWSper il dispositivo principale e i dispositivi client, se il dispositivo èsyncShadowè impostata sutrue.

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

GGStreamManager

Elaborazione locale di flussi di dati ed esegue esportazioni automatiche inCloud AWS.

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

GGTES

Il servizio di scambio token locale che recupera le credenziali IAM definite nel ruolo del gruppo Greengrass utilizzato dal codice locale per accedereAWSServizi .

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