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

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

將裝置連接至AWS IoT

裝置透過 連線至 AWS IoT和其他 服務AWS IoT Core。透過 AWS IoT Core,裝置會使用您帳戶特定的裝置端點來傳送和接收訊息。AWS IoT裝置 SDKs 支援使用 MQTT 和 WSS 通訊協定的裝置通訊。如需裝置可使用之通訊協定的詳細資訊,請參閱 裝置通訊協定

訊息代理程式

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

AWS IoT訊息安全性

AWS IoT要使用 X.509 用戶端憑證AWS簽章 V4 進行身分驗證的裝置連線。裝置通訊由 TLS 1.3 版保護,並AWS IoT要求裝置在連線時傳送伺服器名稱指示 (SNI) 延伸。如需詳細資訊,請參閱 中的 Transport SecurityAWS 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

Description

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 IoTJobs Device HTTPS APIs 與 Jobs 服務互動。

iot:Jobs 僅適用於 IPv4。如果您使用的是雙堆疊端點 (IPv4 和 IPv6),請使用 iot:Data-ATS端點類型。

AWS IoTDevice Advisor 操作

iot:DeviceAdvisor

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

AWS IoT Coredata beta (預覽)

iot:Data-Beta

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

您也可以使用自己的完整網域名稱 (FQDN),例如 example.com,以及相關聯的伺服器憑證,AWS IoT使用 將裝置連線至 網域組態

AWS IoT裝置 SDKs

AWS IoT裝置SDKs可協助您將 IoT 裝置連線至 ,AWS IoT Core並且支援透過 WSS 通訊協定的 MQTT 和 MQTT。

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

行動裝置

同時AWS行動SDKs支援 MQTT 裝置通訊、部分AWS IoT服務 APIs,以及其他 服務的 APIsAWS。如果您是在支援的行動裝置上進行開發,請檢閱其軟體開發套件,以確認這是否為開發 IoT 解決方案的最佳選擇。

C++

AWS IoTC++ 裝置 SDK

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

Python

AWS IoT適用於 Python 的裝置 SDK

適用於 Python 的 AWS IoT裝置 SDK 可讓開發人員撰寫 Python 指令碼,以使用其裝置透過 MQTT 或透過 WebSocket Secure (WSS) 通訊協定的 MQTT 存取AWS IoT平台。透過將其裝置連接到 AWS IoT Core服務的 APIs,使用者可以安全地使用訊息中介裝置、規則和 Device Shadow 服務,該服務AWS IoT Core提供 和 ,並搭配其他 AWS服務,例如 AWS Lambda、Amazon Kinesis 和 Amazon S3 等。

JavaScript

AWS IoT適用於 JavaScript 的裝置 SDK

適用於 JavaScript 的 AWS IoT裝置 SDK 可讓開發人員撰寫 JavaScript 應用程式,透過 WebSocket 通訊協定AWS IoT Core使用 MQTT 或 MQTT 存取 的 APIs。可用於 Node.js 環境和瀏覽器應用程式中。如需詳細資訊,請參閱下列內容:

Java

AWS IoT適用於 Java 的裝置 SDK

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

Embedded C

AWS IoT適用於 Embedded C 的 裝置 SDK

重要

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

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

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

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