Greengrass Discovery RESTful API - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Greengrass Discovery RESTful API

Semua perangkat klien yang berkomunikasi denganAWS IoT Greengrass core harus menjadi anggota dari grup Greengrass. Setiap grup harus memiliki core Greengrass. The Discovery API mengaktifkan perangkat untuk mengambil informasi yang diperlukan untuk terhubung ke core Greengrass yang berada di grup Greengrass yang sama sebagai perangkat klien. Ketika perangkat klien pertama kali online, perangkat dapat tersambungAWS IoT Greengrass ke dan gunakan 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 SDKAWS IoT Perangkat untuk menemukan informasi konektivitas untuk core Greengrass. Untuk informasi selengkapnya, lihat AWS IoT Perangkat SDK.

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

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

Untuk dafta wilayahyang didukung Amazon Web Services Regions dan titik akhir untukAWS IoT Greengrass Discovery API, lihat AWS IoT Greengrasstitik akhir dan kuota di Referensi Umum AWS. Ini adalah hanya bidang data API. Titik akhir untuk manajemen grup dan AWS IoT Core operasi berbeda dari titik akhir Discovery API.

Permintaan

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.

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) TLS ekstensi dan lulus x-amzn-http-ca sebagai ProtocolName di ProtocolNameList. Untuk informasi selengkapnya, lihat Protokol di AWS IoT Panduan Pengembang.

catatan

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.

Response

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.

Otorisasi Discovery

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:

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

Contoh menemukan dokumen respon

Dokumen berikut menunjukkan respon untuk perangkat klien yang merupakan anggota dari kelompok dengan satu core Greengrass, satu titik akhir, dan satu grup sertifikat 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-description" } ] } ], "CAs": [ "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----" ] } ] }

Dokumen berikut menunjukkan respon untuk perangkat klien yang merupakan anggota dari dua kelompok dengan satu core Greengrass, beberapa titik, dan beberapa grup sertifikat 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-----" ] } ] } }
catatan

Sebuah grup Greengrass harus mendefinisikan tepat satu core Greengrass. Setiap respons dari AWS IoT Greengrass layanan yang berisi daftar core Greengrass hanya berisi satu core Greengrass.

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

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