Azure IoT device and service SDK

本參考資料列出可用於建構物聯網解決方案的 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 版 samples 。

警告

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生命週期與支援政策

套件生命週期

套件會以下列類別發行。 每個類別都有一個定義的支持結構。

  1. 搶鮮版 (Beta):也稱為預覽或候選版。 適用於早期存取和意見反應用途,不建議用於生產環境。 預覽版支援僅限於 GitHub 議題。 預覽版本通常可存活不到六個月的時間,之後會遭到淘汰或發行為作用中版本。

  2. 作用中:正式推出且完全支援、接收新功能更新,以及 Bug 和安全性修正。 使用 最新版本 ,因為該版本會獲得修正和更新。

  3. 已取代:由較新版本取代。 取代會在新版本變成作用中時同時發生。 已取代的版本可解決未來 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 的替代方案包括 Azure CLIPowerShell 以及 REST API

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。

語言 Package 來源/分支 範例
.NET NuGet Azure/azure-iot-sdk-csharp at feature/iot-csr-preview CertificateSigningRequestSample
Python pip Azure/azure-IoT-SDK-Python at feature/IoT-csr-preview cert-mmmt範例
Node.js npm 無法提供 無法提供
JAVA Maven Azure/azure-IoT-SDK-Java at feature/csr certificate-signing-sample
C packages Azure/azure-IoT-sdk-c at feature/dps-csr-preview iothub_ll_client_sample_certificate_signing_request

憑證管理嵌入式裝置 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。

SDK 語言 套件連結 參考文件 原始程式碼
.NET (C#) Azure。ResourceManager.DigitalTwins on NuGet Reference for Azure DigitalTwins SDK for .NET Microsoft GitHub
JAVA Maven 上的 azure-resourcemanager-digitaltwins 資源管理的參考 - Digital Twins Azure Resource Manager AzureDigitalTwins client library for Java on GitHub
JavaScript npm 上適用於 JavaScript 的 AzureDigitalTwinsManagement 用戶端程式庫 AzureDigitalTwinsManagement client library for JavaScript on GitHub
Python PyPI 上的 azure-mgmt-digitaltwins Microsoft GitHub
Go azure-sdk-for-go/services/digitaltwins/mgmt Azure SDK代表Go on GitHub

Azure Digital Twins data plane APIs

資料平面 API 是用來管理你 Azure Digital Twins 實例中元素的 Azure Digital Twins API。 它們包括建立路由、上傳模型、建立關聯性及管理對應項等作業,可廣泛分成下列類別:

若要直接呼叫 API,請參考 data 平面 Swagger 倉庫 中最新的 Swagger 資料夾。 此資料夾也包含顯示使用量的範例資料夾。 您也可以檢視資料平面 API 參考文件

以下是目前可用於 Azure Digital Twins 資料平面 API 的 SDK。

SDK 語言 套件連結 參考文件 原始程式碼
.NET (C#) Azure。DigitalTwins.Core 於 NuGet .NET Azure IoT 數位孿生客戶端函式庫,GitHub
JAVA Maven 上的 com.azure:azure-digitaltwins-core Reference for Azure Digital Twins SDK for Java Azure IoT 數位雙生客戶端庫,提供GitHub
JavaScript Azure Azure Digital Twins JavaScript 核心客戶端函式庫,適用於 npm Reference for @azure/digital-twins-core Azure Azure Digital Twins JavaScript 核心用戶端函式庫,適用於 GitHub
Python Azure Azure Digital Twins PyPI azure-digitaltwins-core 的參考 Azure Azure Digital Twins Core 用戶端函式庫,用於 GitHub

下一步

建議的後續步驟包括: