Appel de l'API de contrôle de santé locale - AWS IoT Greengrass

AWS IoT Greengrass Version 1 est entré dans la phase de durée de vie prolongée le 30 juin 2023. Pour plus d'informations, consultez la politique de AWS IoT Greengrass V1 maintenance. Après cette date, AWS IoT Greengrass V1 ne publiera pas de mises à jour fournissant des fonctionnalités, des améliorations, des corrections de bogues ou des correctifs de sécurité. Les appareils qui fonctionnent AWS IoT Greengrass V1 sous tension ne seront pas perturbés et continueront à fonctionner et à se connecter au cloud. Nous vous recommandons vivement de migrer vers AWS IoT Greengrass Version 2, qui ajoute de nouvelles fonctionnalités importantes et prend en charge des plateformes supplémentaires.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Appel de l'API de contrôle de santé locale

AWS IoT Greengrasscontient une API HTTP locale qui fournit un instantané de l'état actuel des processus de travail locaux démarrés parAWS IoT Greengrass. Cet instantané inclut des fonctions Lambda définies par l'utilisateur et des fonctions Lambda système. Les fonctions Lambda du système font partie de laAWS IoT GreengrassLogiciel Core. Ils s'exécutent comme des processus de travail local sur l'appareil principal et gèrent les opérations telles que le routage des messages, la synchronisation du shadow local et la détection automatique d'adresse IP automatique.

L'API de contrôle de santé prend en charge les demandes suivantes :

Les demandes sont envoyées localement sur l'appareil et ne nécessitent pas de connexion Internet.

Obtenir des informations de santé pour tous les travailleurs

Envoyez une demandeGETdemande pour obtenir des informations de santé sur tous les travailleurs en cours d'exécution.

  • Remplacezportavec le numéro de port de l'IPC.

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

Numéro de port de l'IPC.

La valeur peut varier entre 1 024 et 65 535. La valeur par défaut est 8 000.

Pour modifier ce numéro de port, vous pouvez mettre à jour leggDaemonPortpropriété dans leconfig.jsondans le fichier. Pour plus d'informations, consultez Fichier de configuration de AWS IoT Greengrass Core.

Exemple de demande

L'exemple suivantcurlrequest obtient des informations de santé pour tous les travailleurs.

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

Réponse JSON

Cette demande renvoie un tableau deRenseignements personnels sur la santéobjets.

Exemple de réponse

L'exemple de réponse suivant répertorie les objets d'informations d'intégrité pour tous les processus de travail qui ont été démarrés parAWS 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" }, ... ]

Obtenir des informations sur la santé de certains travailleurs

Envoyez une demandePOSTdemande d'obtenir des informations sur la santé de certains travailleurs. Remplacezportavec le numéro de port de l'IPC. La valeur par défaut est 8 000.

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

Exemple de demande

L'exemple suivantcurlrequest obtient des informations de santé pour des travailleurs spécifiques.

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

Voici un exemplebody.jsoncorps de la demande :

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

Le corps de la demande contient unFuncArnstableau.

FuncArns

Liste d'ARN (Amazon Resource Name) pour les fonctions Lambda qui représentent les travailleurs cibles.

  • Pour les fonctions Lambda définies par l'utilisateur, spécifiez l'ARN de la version actuellement déployée. Si vous avez ajouté des fonctions Lambda au groupe à l'aide d'un alias ARN, vous pouvez utiliser la requête GET pour obtenir tous les travailleurs, puis choisir les ARN que vous souhaitez interroger.

  • Pour les fonctions Lambda du système, spécifiez l'ARN de la fonction Lambda correspondante. Pour plus d'informations, consultez Fonctions Lambda du système.

Type : tableau de chaînes

Longueur minimale : 1

Longueur maximale : Nombre total de travailleurs démarrés parAWS IoT Greengrasssur l'appareil principal.

Réponse JSON

Cette demande renvoie unWorkerstableau et unInvalidArnstableau.

Workers

Une liste d'objets d'informations de santé pour les travailleurs spécifiés.

Type : tableauobjets sur la santé

InvalidArns

Liste des ARN de fonction non valides, y compris les ARN de fonction auxquels aucun programme de travail n'est associé.

Type : tableau de chaînes

Exemple de réponse

Les exemples de listes de réponses suivantsobjets sur la santépour les travailleurs spécifiés.

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

Cette demande renvoie les erreurs suivantes :

400 Demande non valide

Le corps de la demande est incorrect. Pour résoudre ce problème, utilisez le format suivant et renvoyez la demande :

{"FuncArns":["function-1-arn","function-2-arn"]}
400 demandes dépassant le nombre maximum de travailleurs

Le nombre d'ARN spécifiés dans leFuncArnsdu tableau dépasse le nombre d'employés.

Renseignements personnels sur la santé

Un objet d'information sur la santé contient les propriétés suivantes :

FuncArn

ARN de la fonction Lambda du système qui représente l'application de travail.

Type: string

WorkerId

ID du travail. Cette propriété peut être utile pour le débogage. Leruntime.loget les journaux de la fonction Lambda contiennent l'ID du worker. Cette propriété peut donc être particulièrement utile pour déboguer une fonction Lambda à la demande qui fait tourner plusieurs instances.

Type: string

ProcessId

ID de processus (PID) du processus de travail.

Type: int

WorkerState

État du travail.

Type: string

Les états de travail possibles sont les suivants :

Working

Traitement d'un message.

Waiting

J'attends un message. S'applique aux fonctions Lambda de longue durée exécutées en tant que démon ou processus autonome.

Starting

Spun up, pour commencer.

FailedInitialization

Impossible d'initialiser.

Terminated

Arrêté par le démon Greengrass

NotStarted

Impossible de démarrer, nouvelle tentative de démarrage.

Initialized

Initialisation réussie.

Fonctions Lambda du système

Vous pouvez demander des informations d'intégrité pour les fonctions Lambda système suivantes :

GGCloudSpooler

Gère la file d'attente pour les messages MQTT qui ontAWS IoT Corecomme source ou cible.

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

GGConnManager

Acheminement des messages MQTT entre le noyau Greengrass et les appareils clients.

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

GGDeviceCertificateManager

Écoute leAWS IoTshadow pour les modifications apportées aux points de terminaison IP du cœur et génère le certificat côté serveur utilisé par GGConnManager pour l'authentification mutuelle.

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

GGIPDetector

Gère la détection automatique d'adresse IP qui permet aux appareils du groupe Greengrass de détecter votre appareil Greengrass principal. Ce service n'est pas applicable lorsque vous fournissez des adresses IP manuellement.

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

GGSecretManager

Gère le stockage sécurisé des secrets locaux et l'accès par Lambda et connecteurs définis par l'utilisateur.

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

GGShadowService

Gère les ombres locales pour les appareils clients.

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

GGShadowSyncManager

Synchronise les ombres locales avec leAWS Cloudpour l'appareil principal et les appareils clients, sisyncShadowest définie surtrue.

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

GGStreamManager

Traite les flux de données localement et effectue des exportations automatiques versAWS Cloud.

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

GGTES

Service local d'échange de jetons qui récupère les informations d'identification IAM définies dans le rôle de groupe Greengrass utilisé par le code local pour accéderAWSServices .

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