你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

用于IoT Hub设备预配服务的 Microsoft SDK

用于IoT Hub设备预配服务的 Microsoft SDK(DPS)可帮助你生成将 IoT 设备预配到一个或多个 IoT 中心的设备和后端应用程序。 SDK 可处理设备或后端应用与 DPS 之间的基础传输和安全协议,使你能够专注于应用程序开发。 通过使用 SDK,可以获取对 DPS 的未来更新(包括安全更新)的支持。 本文介绍三类 SDK,列出了以常用语言发布的 DPS SDK,并提供 SDK 参考、示例和快速入门的链接。

重要

IoT Hub中的证书管理位于 preview,并且仅在以下 DPS 设备 SDK 中受支持:嵌入式 C(裸机、免费 RTOS)、C 和 Python。 IoT Hub SDK 不支持它。 有关详细信息,请参阅 什么是证书管理?

SDK 类别

三类软件开发工具包(SDK)适用于 DPS:

  • DPS 设备 SDK 提供针对设备的数据平面操作。 使用设备 SDK 通过 DPS 预配设备。

  • DPS 服务 SDK 提供针对后端应用的数据平面操作。 使用服务 SDK 创建和管理单个注册和注册组,以及查询和管理设备注册记录。

  • DPS 管理 SDK 提供针对后端应用的控制平面操作。 使用管理 SDK 创建和管理 DPS 实例和元数据。 例如,使用它们创建和管理订阅中的 DPS 实例、使用 DPS 实例上传和验证证书,或在 DPS 实例中创建和管理授权策略或分配策略。

DPS SDK 可帮助将设备预配到 IoT 中心。 Microsoft还提供一组 SDK 来帮助生成直接与Azure IoT Hub通信的设备应用和后端应用。 例如,可帮助预配的设备将遥测数据发送到 IoT 中心,以及(可选)从 IoT 中心接收消息和作业、方法或孪生体更新。 若要了解详细信息,请参阅 Azure IoT Hub SDK

设备 SDK

DPS 设备 SDK 使设备能够注册到 DPS 并接收其 IoT 中心分配。 使用设备 SDK 通过对称密钥、X.509 证书或 TPM 证明实现设备端预配。 平台设备 SDK 适用于运行完整作系统的设备,嵌入式设备 SDK 可用于资源受限和基于微控制器的设备。

平台设备 SDK

DPS 设备 SDK 提供注册 API 和设备调用以通过 DPS 进行预配的其他 API 的实现。 设备 SDK 可以在基于 MPU 的常规计算设备上运行,例如电脑、平板电脑、智能手机或 Raspberry Pi。 SDK 支持使用 C 和现代托管语言(包括 C#、Node.js、Python 和 Java)进行开发。

下表列出了可用于每个受支持语言的设备 SDK。

平台 程序包 代码存储库 示例 快速入门 参考
.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

证书管理设备 SDK (预览版)

下表列出了目前支持Microsoft支持的 X.509 证书管理的平台 SDK(预览版)。

语言 程序包 源/分支 示例
.NET NuGet Azure/azure-iot-sdk-csharp at feature/iot-csr-preview CertificateSigningRequestSample
Python pip Azure/azure-iot-sdk-python 功能/iot-csr-preview cert-mgmt 示例
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

这些 SDK 是为在计算和内存资源有限的设备上运行而设计和创建的,并且使用 C 语言来实现。

RTOS SDK 示例 参考
Eclipse ThreadX Azure RTOS中间件 GitHub 快速入门 引用
FreeRTOS FreeRTOS 中间件 GitHub Samples 引用
裸机 适用于嵌入式 C 的Azure SDK GitHub Samples 引用

详细了解 IoT SDK 中的设备和嵌入式设备 SDK。

证书管理嵌入式设备 SDK (预览版)

下表列出了当前支持Microsoft支持的 X.509 证书管理的嵌入式 SDK(预览版)。

RTOS SDK 示例
FreeRTOS FreeRTOS 中间件 Azure/azure-iot-middleware-freertos at feature/dps-csr-preview 不可用
裸机 适用于嵌入式 C 的Azure SDK Azure/azure-sdk-for-c 功能/dps-csr-preview paho_iot_hub_csr_sample.c

服务 SDK

DPS 服务 SDK 可帮助构建后端应用程序,以便管理 DPS 实例中的注册和注册记录。

平台 程序包 代码存储库 示例 快速入门 参考
.NET NuGet GitHub Samples 快速入门 引用
Java Maven GitHub Samples 快速入门 引用
Node.js npm GitHub Samples 快速入门 引用

管理 SDK

DPS 管理 SDK 可帮助你生成后端应用程序,用于管理 Azure 订阅中的 DPS 实例及其元数据。

平台 程序包 代码存储库 参考
.NET NuGet GitHub 引用
Java Maven GitHub 引用
Node.js npm GitHub 引用
Python pip GitHub 引用

后续步骤

设备预配服务文档提供了可用于试用 SDK 和库的教程其他示例