本參考資料列出可用於建構物聯網解決方案的 Azure SDK,包括 IoT 中樞 與裝置配置服務(DPS)的裝置、服務與管理 SDK、憑證管理預覽 SDK,以及 Azure Digital Twins 控制平面與資料平面 API 的連結。
裝置 SDK
Microsoft Azure IoT 裝置 SDK 包含有助於建置連接並由 Azure IoT 中樞 服務管理的應用程式的程式碼。 這些 SDK 可以在一般以 MPU 為基礎的計算裝置上執行,例如電腦、平板電腦、智慧型手機或 Raspberry Pi。 SDK 支援以 C 語言及現代管理語言開發,包括 C#、Node.js、Python 和 Java。
SDK 支援多種語言,可提供彈性來讓您選擇最適合自己小組和案例的語言。
| 語言 | Package | 來源 | 快速入門 | 範例 | Reference |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | 連接IoT 中樞 | Samples | 參考 |
| Python | pip | GitHub | 連接IoT 中樞 | Samples | 參考 |
| Node.js | npm | GitHub | 連接IoT 中樞 | Samples | 參考 |
| Java | Maven | GitHub | 連接IoT 中樞 | Samples | 參考 |
| C | packages | GitHub | 連接IoT 中樞 | Samples | 參考 |
Java 裝置 SDK 包含 samples for Android。
C 裝置 SDK 包含使用 CocoaPods 的 iOS 版
警告
Azure IoT C SDK 因其記憶體管理與執行緒模型不適合嵌入式應用。 如需內嵌裝置 SDK 選項,請參閱內嵌裝置 SDK。
利用裝置 SDK 開發可在連接 IoT 中樞 或 IoT Central 的物聯網裝置上執行的程式碼。
內嵌裝置 SDK
這些 SDK 的設計和建立目的是為了在計算和記憶體資源有限的裝置上執行,且其實作會使用 C 語言。
內嵌裝置 SDK 適用於多個作業系統,其提供的彈性可讓您選擇最適合您的案例的裝置 SDK。
| RTOS | SDK | 來源 | 範例 | Reference |
|---|---|---|---|---|
| Eclipse ThreadX | Azure RTOS Middleware | GitHub | 快速入門 | 參考 |
| FreeRTOS | FreeRTOS 中介軟體 | GitHub | Samples | 參考 |
| 裸金屬 | Azure SDK for Embedded C | GitHub | Samples | 參考 |
利用嵌入式裝置 SDK 開發可在連接 IoT 中樞 或 IoT Central 的物聯網裝置上執行的程式碼。
若要深入了解何時使用內嵌裝置 SDK,請參閱 C SDK 和內嵌 C SDK 使用方式情節。
裝置 SDK 生命週期和支援
本節總結 Azure IoT 裝置 SDK 生命週期及支援政策。 欲了解更多資訊,請參閱 Azure SDK生命週期與支援政策。
套件生命週期
套件會以下列類別發行。 每個類別都有一個定義的支持結構。
搶鮮版 (Beta):也稱為預覽或候選版。 適用於早期存取和意見反應用途,不建議用於生產環境。 預覽版支援僅限於 GitHub 議題。 預覽版本通常可存活不到六個月的時間,之後會遭到淘汰或發行為作用中版本。
作用中:正式推出且完全支援、接收新功能更新,以及 Bug 和安全性修正。 使用 最新版本 ,因為該版本會獲得修正和更新。
已取代:由較新版本取代。 取代會在新版本變成作用中時同時發生。 已取代的版本可解決未來 12 個月最重要的 BUG 修正和安全性修正。
取得支援
如果您在使用 Azure IoT SDK 時遇到問題,請透過以下選項尋求支援:
Reporting bugs - 所有客戶都可以在與相關 SDK 相關的 GitHub 倉庫的問題頁面回報錯誤。
Microsoft 客服團隊 - 擁有 support 計畫 的使用者可直接從 Azure 入口網站 建立支援單與 Microsoft 客服團隊聯繫。
IoT 中樞 service SDK
Azure IoT 服務 SDK 包含程式碼,方便建置直接與 IoT 中樞 互動的應用程式,以管理裝置與安全性。
| 平台 | Package | 程式碼儲存庫 | 範例 | Reference |
|---|---|---|---|---|
| .NET | NuGet | GitHub | Samples | 參考 |
| JAVA | Maven | GitHub | Samples | 參考 |
| Node | npm | GitHub | Samples | 參考 |
| Python | pip | GitHub | Samples | 參考 |
想了解如何使用服務 SDK 透過物聯網中樞與裝置互動,請參閱 IoT 隨插即用 服務開發者指南。
IoT 中樞 管理 SDK
IoT 中樞 管理 SDK 幫助你建立管理 Azure 訂閱中物聯網樞紐的後端應用程式。
| 平台 | Package | 程式碼存放庫 | Reference |
|---|---|---|---|
| .NET | NuGet | GitHub | 參考 |
| JAVA | Maven | GitHub | 參考 |
| Node.js | npm | GitHub | 參考 |
| Python | pip | GitHub | 參考 |
管理 SDK 的替代方案包括
DPS 裝置 SDK
DPS 裝置 SDK 提供登錄 API 實作,以及裝置透過 DPS 呼叫佈建的其他實作。 這些裝置 SDK 可以在一般以 MPU 為基礎的計算裝置上執行,例如電腦、平板電腦、智慧型手機或 Raspberry Pi。 SDK 支援以 C 語言及現代管理語言開發,包括 C#、Node.js、Python 和 Java。
下表列出每種支援語言可用的裝置 SDK。
| 平台 | Package | 程式碼存放庫 | 範例 | 快速入門 | Reference |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | Samples | 快速入門 | 參考 |
| C | apt-get、MBED、Arduino IDE 或 iOS | GitHub | Samples | 快速入門 | 參考 |
| JAVA | Maven | GitHub | Samples | 快速入門 | 參考 |
| Node.js | npm | GitHub | Samples | 快速入門 | 參考 |
| Python | pip | GitHub | Samples | 快速入門 | 參考 |
警告
列於上方的 C SDK「不」適合內嵌應用程式,原因在於其記憶體管理和執行緒模式。 針對內嵌裝置,請參閱內嵌裝置 SDK。
DPM 內嵌裝置 SDK
這些 SDK 的設計和建立目的是為了在計算和記憶體資源有限的裝置上執行,且其實作會使用 C 語言。
| RTOS | SDK | 來源 | 範例 | Reference |
|---|---|---|---|---|
| Eclipse ThreadX | Azure RTOS Middleware | GitHub | 快速入門 | 參考 |
| FreeRTOS | FreeRTOS 中介軟體 | GitHub | Samples | 參考 |
| 裸金屬 | Azure SDK for Embedded C | GitHub | Samples | 參考 |
深入了解 IoT SDK 中的裝置和內嵌裝置 SDK。
DPM 服務 SDK
DPS 服務 SDK 可協助您建置後端應用程式以管理 DPS 執行個體中的註冊和登錄記錄。
| 平台 | Package | 程式碼存放庫 | 範例 | 快速入門 | Reference |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | Samples | 快速入門 | 參考 |
| JAVA | Maven | GitHub | Samples | 快速入門 | 參考 |
| Node.js | npm | GitHub | Samples | 快速入門 | 參考 |
DPM 管理 SDK
DPS 管理 SDK 幫助你建立後端應用程式,管理 Azure 訂閱中的 DPS 實例及其元資料。
| 平台 | Package | 程式碼存放庫 | Reference |
|---|---|---|---|
| .NET | NuGet | GitHub | 參考 |
| JAVA | Maven | GitHub | 參考 |
| Node.js | npm | GitHub | 參考 |
| Python | pip | GitHub | 參考 |
憑證管理 SDK(預覽版)
對於支援 Microsoft 支援的 X.509 憑證管理預覽版的 SDK,請使用以下說明與範例。 要在預覽版中使用憑證管理 SDK,必須使用 Azure IoT 中樞 搭配連結的 DPS 實例,且裝置必須透過 DPS 配置。
憑證管理裝置 SDK(預覽版)
下表列出目前支援 Microsoft 支援 X.509 憑證管理的平台 SDK。
憑證管理嵌入式裝置 SDK(預覽版)
下表列出目前支援 Microsoft 支援 X.509 憑證管理的嵌入式 SDK。
| RTOS | SDK | 來源 | 範例 |
|---|---|---|---|
| FreeRTOS | FreeRTOS 中介軟體 | Azure/azure-iot-middleware-freertos at feature/dps-csr-preview | 無法提供 |
| 裸金屬 | Azure SDK for Embedded C | Azure/azure-sdk-for-c at feature/dps-csr-preview | paho_iot_hub_csr_sample.c |
Azure Digital Twins control plane APIs
控制平面 API 是 ARM API,用來管理整個Azure Digital Twins實例,涵蓋建立或刪除整個實例這類操作。 您還將使用這些 API 來建立和刪除端點。
若要直接呼叫 API,請參考 control 平面 Swagger 倉庫 中最新的 Swagger 資料夾。 此資料夾也包含顯示使用量的範例資料夾。
以下是目前可用於 Azure Digital Twins 控制平面 API 的 SDK。
Azure Digital Twins data plane APIs
資料平面 API 是用來管理你 Azure Digital Twins 實例中元素的 Azure Digital Twins API。 它們包括建立路由、上傳模型、建立關聯性及管理對應項等作業,可廣泛分成下列類別:
-
DigitalTwinModels- DigitalTwinModels 類別包含管理 Azure Digital Twins 實例中models 的 API。 管理活動包括上傳、驗證、擷取和刪除 DTDL 中撰寫的模型。 -
DigitalTwins- DigitalTwins 類別包含讓開發者能在 Azure Digital Twins 實例中建立、修改及刪除 digital twins 及其關聯的 API。 -
Query- 查詢類別可讓開發人員跨多個關聯性,在對應項圖表中尋找數位對應項集合。 -
Event Routes- 事件路由類別包含可透過系統和下游服務來路由資料的 API。 -
Import Jobs- 匯入作業 API 可讓您管理長時間執行的非同步動作,以大量匯入模型、對應項和關聯性。 -
Delete Jobs- 刪除作業 API 可讓您管理長時間執行的非同步動作,以刪除執行個體中的所有模型、對應項和關聯性。
若要直接呼叫 API,請參考 data 平面 Swagger 倉庫 中最新的 Swagger 資料夾。 此資料夾也包含顯示使用量的範例資料夾。 您也可以檢視資料平面 API 參考文件。
以下是目前可用於 Azure Digital Twins 資料平面 API 的 SDK。
| SDK 語言 | 套件連結 | 參考文件 | 原始程式碼 |
|---|---|---|---|
| .NET (C#) | Azure。DigitalTwins.Core 於 NuGet | ||
| JAVA | Maven 上的 com.azure:azure-digitaltwins-core | Reference for Azure Digital Twins SDK for Java | |
| JavaScript | Azure Azure Digital Twins JavaScript 核心客戶端函式庫,適用於 npm | Reference for @azure/digital-twins-core | Azure Azure Digital Twins JavaScript 核心用戶端函式庫,適用於 GitHub |
| Python | azure-digitaltwins-core 的參考 |
下一步
建議的後續步驟包括: