將裝置連接至 AWS IoT - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將裝置連接至 AWS IoT

設備通過連 AWS IoT 接到其他服務 AWS IoT Core。透過 AWS IoT Core,裝置會使用您帳戶專屬的裝置端點傳送和接收訊息。AWS IoT 裝置開發套件 支援使用 MQTT 和 WSS 通訊協定的裝置通訊。如需裝置可使用之通訊協定的詳細資訊,請參閱 裝置通訊協定

訊息代理程式

AWS IoT 透過訊息代理程式管理裝置通訊。裝置和用戶端會將訊息發佈至訊息代理程式,並訂閱訊息代理程式發佈的訊息。訊息由應用程式定義的主題識別。當訊息代理程式收到裝置或用戶端發佈的訊息時,會將該訊息重新發佈至已訂閱該訊息之主題的裝置和用戶端。訊息代理程式也會將訊息轉寄至 AWS IoT 規則引擎,該引擎可對訊息的內容採取行動。

AWS IoT 消息安全

要 AWS IoT 使用的設備連接X.509 用戶端憑證AWS 簽名 V4 進行身份驗證。裝置通訊受 TLS 1.3 版保護,並 AWS IoT 要求裝置在連線時傳送伺服器名稱指示 (SNI) 延伸模組。如需詳細資訊,請參閱中的傳輸安全性 AWS IoT

AWS IoT 裝置資料和服務端點

重要

您可以在裝置中快取或儲存端點。這意味著您不需要在每次連接新裝置時查詢 DescribeEndpoint API。為您的帳戶 AWS IoT Core 建立端點後,端點不會變更。

每個帳戶都有數個帳戶獨有的裝置端點,並支援特定的 IoT 功能。 AWS IoT 裝置資料端點支援針對 IoT 裝置的通訊需求而設計的發佈/訂閱通訊協定;但是,如果其他用戶端 (例如應用程式和服務) 的應用程式需要這些端點所提供的特殊功能,也可以使用此介面。 AWS IoT 裝置服務端點支援以裝置為中心的安全性和管理服務存取。

如要瞭解帳戶的裝置資料端點,您可以在 AWS IoT Core 主機的 [設定] 頁面中找到該端點。

若要了解您帳戶的裝置端點特定用途,包括裝置資料端點,請使用此處顯示的 describe-endpoint CLI 命令或 DescribeEndpoint REST API,並提供下表中的 endpointType 參數值。

aws iot describe-endpoint --endpoint-type endpointType

這個命令會傳回下列格式的 iot-endpointaccount-specific-prefix.iot.aws-region.amazonaws.com

每個客戶都有一個 iot:Data-ATS 和一個 iot:Data 端點。每個端點都使用 X.509 憑證來驗證用戶端。強烈建議客戶使用較新的 iot:Data-ATS 端點類型,以避免與普遍不信任 Symantec 憑證授權單位相關的問題。我們為設備提供iot:Data端點,以從使用 VeriSign 證書向後兼容的舊端點中檢索數據。如需詳細資訊,請參閱伺服器身分驗證​

AWS IoT 裝置的端點

端點用途

endpointType

描述

AWS IoT Core:資料平面操作

iot:Data-ATS

用來將資料傳送至訊息代理程式、Device Shadow 和 AWS IoT的規則引擎元件,以及從中接收資料。

iot:Data-ATS 傳回 ATS 簽署的資料端點。

AWS IoT Core:資料平面操作 (舊式)

iot:Data

iot:Data返回提供向後兼容性的 VeriSign 簽名數據端點。Symantec (iot:Data) 端點不支援 MQTT 5。

AWS IoT Core 認證存取

iot:CredentialProvider

用於將裝置的內建 X.509 憑證交換為臨時憑證,以直接與其他 AWS 服務連線。如需有關連線至其他 AWS 服務的詳細資訊,請參閱授權直接呼叫 AWS 服務

AWS IoT Device Management:任務資料操作

iot:Jobs

用於使裝置能夠使用 AWS IoT 工作裝置 HTTPS API 與作業服務互動。

AWS IoT 裝置建議程式作

iot:DeviceAdvisor

用於使用 Device Advisor 測試裝置的測試端點類型。如需詳細資訊,請參閱 Device Advisor

AWS IoT Core 資料測試版 (預覽版)

iot:Data-Beta

保留給 測試版的端點類型。如需其目前使用方式的詳細資訊,請參閱 可設定端點

您也可以使用您自己的完整網域名稱 (FQDN),例如 example.com,以及相關的伺服器憑證,透過使用來連接裝置。 AWS IoT 可設定端點

AWS IoT 裝置開發套件

AWS IoT 裝置開發套件可協助您將 IoT 裝置連接到, AWS IoT Core 並透過 WSS 通訊協定支援 MQTT 和 MQTT。

AWS IoT 裝置 SDK 與 SDK 不同之處在於 AWS IoT 裝置 SDK 支援 IoT 裝置的特殊通訊需求,但不支援 SDK 支援的所有服務。 AWS AWS AWS IoT 裝置 SDK 與支援所有 AWS 服務的 AWS SDK 相容;但是,它們使用不同的驗證方法並連接到不同的端點,這可能會導致在 IoT 裝置上使用 AWS SDK 不切實際。

行動裝置

AWS 行動開發套件支持 MQTT 設備通信,一些 AWS IoT 服務 API 和其他 AWS 服務的 API。如果您是在支援的行動裝置上進行開發,請檢閱其軟體開發套件,以確認這是否為開發 IoT 解決方案的最佳選擇。

C++

AWS IoT C++ 設備開發套件

AWS IoT C ++ 設備 SDK 允許開發人員使用 AWS 和 AWS IoT Core 服務的 API 構建連接的應用程序。此 SDK 特別是為並未受限於資源的裝置所設計,需要訊佇列、多重執行緒支援、最新語言功能等進階功能。如需詳細資訊,請參閱下列內容:

Python

AWS IoT Python 的設備開發套件

適用於 Python 的 AWS IoT 設備 SDK 使開發人員可以編寫 Python 腳本,以使用他們的設備通過 MQTT 或 MQTT 通過 WebSocket 安全(WSS)協議訪問 AWS IoT 平台。透過將裝置連接到 AWS IoT Core 服務的 API,使用者可以安全地使用 AWS IoT Core 提供 Amazon Kinesis 和 Amazon S3 等 AWS Lambda其他服務的訊息代理程式、規則和 Device Shadow AWS 服務,並與其他服務搭配使用。

JavaScript

AWS IoT 適用於的裝置 SDK JavaScript

設 AWS IoT 備 SDK JavaScript 使開發人員可以編寫訪問通過協議 AWS IoT Core 使用 MQTT 或 MQTT 的 API 的 JavaScript 應用程序。 WebSocket 可用於 Node.js 環境和瀏覽器應用程式中。如需詳細資訊,請參閱下列內容:

Java

AWS IoT Java 的裝置開發套件

Java 的 AWS IoT 裝置 SDK 可讓 Java 開發人員透過通訊協定存取 AWS IoT Core 透過 MQTT 或 MQTT 的 API。 WebSocket軟體開發套件支援 Device Shadow 服務。您可以使用 HTTP 方法來存取影子,包括 GET、UPDATE 與 DELETE。此軟體開發套件亦支援簡化的影子存取模式,開發人員只需使用 getter 和 setter 方法,即可與影子交換資料,而無需將任何 JSON 文件序列化或還原序列化。如需詳細資訊,請參閱下列內容:

Embedded C

AWS IoT 適用於嵌入式 C 的裝置 SDK

重要

此 SDK 適合經驗豐富的嵌入式軟體開發人員使用。

適用於 Embedded C 的 AWS IoT Device SDK (C-SDK) 是 MIT 開放原始碼授權下的 C 原始碼檔案集合,可用於嵌入式應用程式,將 IoT 裝置安全地連接到 AWS IoT Core。它包括 MQTT,JSON 解析器和 AWS IoT Device Shadow 庫等。它以原始碼形式分配,並且將會與應用程式碼、其他程式庫,以及 (可選的) RTOS (即時作業系統),一起內建於客戶韌體中。

通 適用於 Embedded C 的 AWS IoT Device SDK 常會針對需要最佳化 C 語言執行階段的資源受限裝置。您可以在任何作業系統上使用軟體開發套件,並將其裝載在任何處理器類型 (例如 MCU 和 MPU) 上。如果您的裝置有足夠的記憶體和處理資源,建議您使用其他 AWS IoT 裝置和行動 SDK 之一,例如 C++ JavaScript、Java 或 Python 的 AWS IoT 裝置 SDK。

如需詳細資訊,請參閱下列內容: