支援終止通知:2026 年 10 月 7 日 AWS 將停止 的支援 AWS IoT Greengrass Version 1。2026 年 10 月 7 日之後,您將無法再存取 AWS IoT Greengrass V1 資源。如需詳細資訊,請造訪從 遷移 AWS IoT Greengrass Version 1。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Greengrass Discovery RESTful API
所有與 AWS IoT Greengrass 核心通訊的用戶端裝置都必須是 Greengrass 群組的成員。每個群組都必須有一個 Greengrass 核心。Discovery API 可讓裝置擷取連線至與用戶端裝置位於相同 Greengrass 群組的 Greengrass 核心所需的資訊。當用戶端裝置首次上線時,它可以連線至 AWS IoT Greengrass 服務,並使用 Discovery API 來尋找:
其所屬的群組。用戶端裝置最多可為 10 個群組的成員。
群組中 Greengrass 核心的 IP 位址和連接埠。
群組憑證授權機構憑證可用於驗證 Greengrass 核心裝置。
注意
用戶端裝置也可以使用 AWS IoT 裝置SDKs來探索 Greengrass 核心的連線資訊。如需詳細資訊,請參閱AWS IoT 裝置 SDK。
若要使用此 API,請傳送 HTTP 請求給 Discovery API 端點。例如:
https://greengrass-ats.iot.region.amazonaws.com:port/greengrass/discover/thing/thing-name
如需 AWS IoT Greengrass Discovery API 支援的 Amazon Web Services 區域和端點清單,請參閱 AWS IoT Greengrass 中的端點和配額AWS 一般參考。這是一個僅限 API 的資料平面。群組管理和 AWS IoT Core 操作的端點與 Discovery API 端點不同。
請求
此請求包含標準 HTTP 標題並已傳送到 Greengrass Discovery 端點,如下列範例所示。
連接埠號碼取決於核心是否設定為透過連接埠 8443 或連接埠 443 傳送 HTTPS 流量。如需詳細資訊,請參閱連線至連接埠 443 或透過網路代理。
- 連接埠 8443
-
HTTP GET https://greengrass-ats.iot.region.amazonaws.com:8443/greengrass/discover/thing/thing-name - 連接埠 443
-
HTTP GET https://greengrass-ats.iot.region.amazonaws.com:443/greengrass/discover/thing/thing-name在連接埠 443 上連線的用戶端必須實作 Application Layer Protocol Negotiation (ALPN)
TLS 延伸模組,並在 ProtocolName中x-amzn-http-ca做為 傳遞ProtocolNameList。如需詳細資訊,請參閱《 AWS IoT 開發人員指南》中的通訊協定。注意
這些範例使用 Amazon Trust Services (ATS) 端點,這是用於 ATS 根 CA 憑證 (建議使用)。端點必須符合根 CA 憑證類型。如需詳細資訊,請參閱服務端點必須符合根 CA 憑證類型。
回應
成功時,回應會包括標準 HTTP 標頭以及下列程式碼與本文:
HTTP 200 BODY: response document
如需詳細資訊,請參閱範例 Discover 回應文件。
探索授權
擷取連線資訊需要一項允許發起人執行 greengrass:Discover 動作的政策。TLS 用戶端憑證的共同身分驗證僅接受身分驗證的格式。以下為允許發起人執行此動作的範例政策:
範例 Discover 回應文件
下列文件顯示用戶端裝置的回應,該用戶端裝置是具有一個 Greengrass 核心、一個端點和一個群組 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-----" ] } ] }
下列文件顯示用戶端裝置的回應,該用戶端裝置是具有一個 Greengrass 核心、多個端點和多個群組 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-----" ] } ] } }
注意
Greengrass 群組必須只定義一個 Greengrass 核心。 AWS IoT Greengrass 服務中包含 Greengrass 核心清單的任何回應都只包含一個 Greengrass 核心。
若已安裝 cURL,則可以測試探索請求。例如:
$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"]}]}