

Avis de fin de support : le 7 octobre 2026, AWS le support de. AWS IoT Greengrass Version 1 Après le 7 octobre 2026, vous ne pourrez plus accéder aux AWS IoT Greengrass V1 ressources. Pour plus d'informations, rendez-vous sur [Migrer depuis AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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
<a name="gg-discover-api"></a>

Tous les appareils clients qui communiquent avec un AWS IoT Greengrass cœur doivent être membres d'un groupe Greengrass. Chaque groupe doit avoir un noyau Greengrass. L'API Discovery permet aux appareils de récupérer les informations nécessaires pour se connecter à un cœur 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 au AWS IoT Greengrass service et utiliser l'API Discovery pour trouver :
+ Le groupe auquel il appartient Un appareil client peut appartenir à un maximum de 10 groupes.
+ 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 les AWS IoT SDK pour découvrir les informations de connectivité d'un noyau Greengrass. Pour de plus amples informations, veuillez consulter [AWS IoT SDK de l'appareil](what-is-gg.md#iot-device-sdk).

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 points de terminaison Amazon Web Services pris en charge pour l'API AWS IoT Greengrass Discovery, consultez la section [AWS IoT Greengrass Points de terminaison et quotas](https://docs.aws.amazon.com/general/latest/gr/greengrass.html) 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 et les AWS IoT Core opérations des groupes sont différents des points de terminaison de l'API Discovery.

## Demande
<a name="gg-discover-request"></a>

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 de plus amples informations, veuillez consulter [Connexion au port 443 ou via un proxy réseau](gg-core.md#alpn-network-proxy).

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)](https://tools.ietf.org/html/rfc7301) et la transmettre `x-amzn-http-ca` comme `ProtocolName` dans le. `ProtocolNameList` Pour plus d'informations, consultez la section [Protocoles](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html) du *guide du AWS IoT développeur*.  
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 de plus amples informations, veuillez consulter [Les points de terminaison du service doivent correspondre au type de certificat de l'autorité de certification racine](gg-core.md#certificate-endpoints).

## Réponse
<a name="gg-discover-response"></a>

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 de plus amples informations, veuillez consulter [Exemple de documents de réponse à une découverte](#gg-discover-response-doc).

## Autorisation de découverte
<a name="gg-discover-auth"></a>

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 :

------
#### [ JSON ]

****  

```
{
    "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
<a name="gg-discover-response-doc"></a>

Le document suivant montre la réponse d'un appareil client membre d'un groupe doté d'un noyau Greengrass, 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 montre la réponse d'un appareil client membre de deux groupes avec un cœur Greengrass, plusieurs points de terminaison et plusieurs certificats de groupe CA :

```
{
  "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 AWS IoT Greengrass service contenant une liste de cœurs Greengrass ne contient qu'un seul cœur 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-----\n{{cert-contents}}\n-----END CERTIFICATE-----\n"]}]}
```