本參考資料列出可用於建構物聯網解決方案的 Azure SDK,包括 IoT 中樞 與裝置配置服務(DPS)的裝置、服務及管理 SDK,以及連結至 Azure Digital Twins 控制平面與資料平面 API。
展望未來,統一的 Azure IoT SDK(預覽版)將這些裝置與服務功能整合至 IoT 中樞 與 Azure 裝置登錄檔。
裝置 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 | 參考 |
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 | 適用於 Java 的 Azure Digital Twins SDK 參考 | |
| JavaScript | Azure Azure Digital Twins JavaScript 核心客戶端函式庫,適用於 npm | Reference for @azure/digital-twins-core | Azure Azure Digital Twins JavaScript 核心用戶端函式庫,適用於 GitHub |
| Python | azure-digitaltwins-core 的參考 |
下一步
建議的後續步驟包括: