

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi [Migrasi dari AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Greengrass Discovery RESTful API
<a name="gg-discover-api"></a>

Semua perangkat klien yang berkomunikasi dengan AWS IoT Greengrass inti harus menjadi anggota grup Greengrass. Setiap grup harus memiliki core Greengrass. Discovery API memungkinkan perangkat untuk mengambil informasi yang diperlukan untuk terhubung ke inti Greengrass yang berada di grup Greengrass yang sama dengan perangkat klien. Saat perangkat klien pertama kali online, perangkat dapat terhubung ke AWS IoT Greengrass layanan dan menggunakan Discovery API untuk menemukan:
+ Grup yang menjadi miliknya. Perangkat klien dapat menjadi anggota hingga 10 grup.
+ Alamat IP dan port untuk core Greengrass dalam grup.
+ Sertifikat CA grup, yang dapat digunakan untuk mengautentikasi perangkat core Greengrass.

**catatan**  
Perangkat klien juga dapat menggunakan AWS IoT Device SDK untuk menemukan informasi konektivitas untuk inti Greengrass. Untuk informasi selengkapnya, lihat [AWS IoT Perangkat SDK](what-is-gg.md#iot-device-sdk).

Untuk menggunakan API ini, kirim permintaan HTTP ke titik akhir Discovery API. Contoh:

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

Untuk daftar Wilayah Amazon Web Services dan titik akhir yang didukung untuk AWS IoT Greengrass Discovery API, lihat [AWS IoT Greengrass titik akhir dan kuota](https://docs.aws.amazon.com/general/latest/gr/greengrass.html) di. *Referensi Umum AWS* Ini adalah hanya bidang data API. Titik akhir untuk manajemen dan AWS IoT Core operasi grup berbeda dari titik akhir Discovery API.

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

Permintaan berisi header HTTP standar dan dikirim ke titik akhir Greengrass Discovery, seperti yang ditunjukkan dalam contoh berikut.

Nomor port tergantung pada apakah inti dikonfigurasi untuk mengirim lalu lintas HTTPS melalui port 8443 atau port 443. Untuk informasi selengkapnya, lihat [Connect pada port 443 atau melalui proksi jaringan](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}}
```
Klien yang terhubung pada port 443 harus menerapkan [ Application Layer Protocol Negotiation (ALPN)](https://tools.ietf.org/html/rfc7301) TLS ekstensi dan lulus `x-amzn-http-ca` sebagai `ProtocolName` di `ProtocolNameList`. Untuk informasi selengkapnya, lihat [Protokol](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html) di *AWS IoT Panduan Pengembang*.  
Contoh ini menggunakan titik akhir Amazon Trust Services (ATS), yang digunakan dengan sertifikat ATS root CA (disarankan). Titik akhir harus sesuai dengan jenis sertifikat root CA. Untuk informasi selengkapnya, lihat [Titik akhir layanan harus sesuai dengan jenis sertifikat CA root](gg-core.md#certificate-endpoints).

## Respons
<a name="gg-discover-response"></a>

Setelah berhasil, respon mencakup header HTTP standar ditambah kode dan tubuh berikut:

```
HTTP 200
BODY: response document
```

Untuk informasi selengkapnya, lihat [Contoh menemukan dokumen respon](#gg-discover-response-doc).

## Otorisasi Discovery
<a name="gg-discover-auth"></a>

Mengambil informasi konektivitas memerlukan kebijakan yang mengizinkan pemanggil untuk melakukan `greengrass:Discover` tindakan. Autentikasi mutual TLS dengan sertifikat klien adalah satu-satunya bentuk autentikasi yang diterima. Berikut ini adalah contoh kebijakan yang mengizinkan pemanggil untuk melakukan tindakan ini:

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

****  

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

------

## Contoh menemukan dokumen respon
<a name="gg-discover-response-doc"></a>

Dokumen berikut menunjukkan respons untuk perangkat klien yang merupakan anggota grup dengan satu inti Greengrass, satu titik akhir, dan satu sertifikat CA grup:

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

Dokumen berikut menunjukkan respons untuk perangkat klien yang merupakan anggota dari dua grup dengan satu inti Greengrass, beberapa titik akhir, dan beberapa sertifikat CA grup:

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

**catatan**  
Sebuah grup Greengrass harus mendefinisikan tepat satu core Greengrass. Setiap tanggapan dari AWS IoT Greengrass layanan yang berisi daftar inti Greengrass hanya berisi satu inti Greengrass. 

Jika Anda telah `cURL` menginstal, Anda dapat menguji permintaan discovery. Contoh:

```
$ 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"]}]}
```