API RESTful de découverte de Greengrass - 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.

API RESTful de découverte de Greengrass

Tous les appareils clients qui communiquent avec unAWS IoT Greengrass noyau doivent appartenir à un groupe Greengrass. Chaque groupe doit avoir un noyau Greengrass. L'API Discovery permet aux appareils de récupérer les informations requises pour se connecter à un noyau Greengrass appartenant au même groupe Greengrass que l'appareil client. Lorsqu'un appareil client est connecté pour la première fois, il peut se connecter auAWS IoT Greengrass service et utiliser l'API Discovery pour rechercher :

  • Le groupe auquel il appartient Un appareil client peut appartenir à 10 groupes au maximum.

  • L'adresse IP et le port du noyau Greengrass dans le groupe.

  • Le certificat de l'autorité de certification du groupe, qui peut être utilisé pour authentifier l'appareil principal Greengrass (noyau).

Note

Les appareils clients peuvent également utiliser lesAWS IoT kits de la Greengrass. Pour plus d'informations, veuillez consulter SDK pour les appareils AWS IoT.

Pour utiliser cette API, envoyez des demandes HTTP au point de terminaison de l'API Discovery. Par exemple :

https://greengrass-ats.iot.region.amazonaws.com:port/greengrass/discover/thing/thing-name

Pour obtenir la liste des régions et des points de terminaison Amazon Web Services pris en charge pour l'APIAWS IoT Greengrass Discovery, consultez les AWS IoT Greengrasspoints de terminaison et les quotas dans le Références générales AWS. Cette API est réservée aux plans de données. Les points de terminaison pour la gestion de groupe et les opérations AWS IoT Core sont différents des points de terminaison de l'API Discovery.

Requête

La demande contient les en-têtes HTTP standard et est envoyée au point de terminaison de découverte Greengrass, comme illustré dans les exemples suivants.

Le numéro de port varie selon que le noyau est configuré pour envoyer le trafic HTTPS via le port 8443 ou le port 443. Pour plus d'informations, veuillez consulter Connexion au port 443 ou via un proxy réseau.

Port 8443
HTTP GET https://greengrass-ats.iot.region.amazonaws.com:8443/greengrass/discover/thing/thing-name
Port 443
HTTP GET https://greengrass-ats.iot.region.amazonaws.com:443/greengrass/discover/thing/thing-name

Les clients qui se connectent sur le port 443 doivent implémenter l'extension TLS ALPN (Application Layer Protocol Negotiation) et transmettrex-amzn-http-ca leProtocolNameList.ProtocolName Pour plus d'informations, consultez la section Protocoles du Guide duAWS IoT développeur.

Note

Ces exemples utilisent le point de terminaison Amazon Trust Services (ATS), qui est utilisé avec les certificats CA racine ATS (recommandé). Les points de terminaison doivent correspondre au type de certificat CA racine. Pour plus d'informations, veuillez consulter Les points de terminaison du service doivent correspondre au type de certificat de l'autorité de certification racine.

Réponse

En cas de réussite, la réponse comprend les en-têtes HTTP standard, plus le code et le corps suivants :

HTTP 200 BODY: response document

Pour plus d'informations, veuillez consulter Exemple de documents de réponse à une découverte.

Acvery Service Service Service

La récupération des informations de connectivité nécessite une stratégie qui permet au mandataire de réaliser l'action greengrass:Discover. L'authentification mutuelle TLS avec un certificat client est la seule forme d'authentification acceptée. Voici un exemple de stratégie qui autorise un mandataire à effectuer cette action :

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "greengrass:Discover", "Resource": ["arn:aws:iot:us-west-2:123456789012:thing/MyThingName"] }] }

Exemple de documents de réponse à une découverte

Le document suivant présente la réponse pour un appareil client membre d'un groupe doté d'un certificat Greengrass Core, d'un point de terminaison et d'un certificat CA de groupe :

{ "GGGroups": [ { "GGGroupId": "gg-group-01-id", "Cores": [ { "thingArn": "core-01-thing-arn", "Connectivity": [ { "id": "core-01-connection-id", "hostAddress": "core-01-address", "portNumber": core-01-port, "metadata": "core-01-description" } ] } ], "CAs": [ "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----" ] } ] }

Le document suivant présente la réponse pour un appareil client membre de deux groupes avec un cœur Greengrass, plusieurs points de terminaison et plusieurs certificats CA de groupe :

{ "GGGroups": [ { "GGGroupId": "gg-group-01-id", "Cores": [ { "thingArn": "core-01-thing-arn", "Connectivity": [ { "id": "core-01-connection-id", "hostAddress": "core-01-address", "portNumber": core-01-port, "metadata": "core-01-connection-1-description" }, { "id": "core-01-connection-id-2", "hostAddress": "core-01-address-2", "portNumber": core-01-port-2, "metadata": "core-01-connection-2-description" } ] } ], "CAs": [ "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----" ] }, { "GGGroupId": "gg-group-02-id", "Cores": [ { "thingArn":"core-02-thing-arn", "Connectivity" : [ { "id": "core-02-connection-id", "hostAddress": "core-02-address", "portNumber": core-02-port, "metadata": "core-02-connection-1-description" } ], "CAs": [ "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----" ] } ] } }
Note

Un groupe Greengrass doit définir exactement un noyau Greengrass. Toute réponse du service AWS IoT Greengrass qui contient une liste de noyaux Greengrass ne contient qu'un seul noyau Greengrass.

Si cURL est installé, vous pouvez tester la demande de découverte. Par exemple :

$ curl --cert 1a23bc4d56.cert.pem --key 1a23bc4d56.private.key https://greengrass-ats.iot.us-west-2.amazonaws.com:8443/greengrass/discover/thing/MyDevice {"GGGroups":[{"GGGroupId":"1234a5b6-78cd-901e-2fgh-3i45j6k1789","Cores":[{"thingArn":"arn:aws:iot:us-west-2:1234567 89012:thing/MyFirstGroup_Core","Connectivity":[{"Id":"AUTOIP_192.168.1.4_1","HostAddress":"192.168.1.5","PortNumber ":8883,"Metadata":""}]}],"CAs":["-----BEGIN CERTIFICATE-----\ncert-contents\n-----END CERTIFICATE-----\n"]}]}