Microsoft SDK for IoT Hub Device Provisioning Service (DPS) は、IoT デバイスを 1 つ以上の IoT ハブにプロビジョニングするデバイスアプリケーションとバックエンド アプリケーションを構築するのに役立ちます。 SDK は、デバイスまたはバックエンド アプリと DPS の間の基になるトランスポートおよびセキュリティ プロトコルを処理するため、アプリケーション開発に集中できます。 SDK を使用すると、今後の DPS の更新プログラム (セキュリティ更新プログラムなど) のサポートを受けられます。 この記事では、SDK の 3 つのカテゴリについて説明し、一般的な言語で公開されている DPS SDK の一覧を示し、SDK のリファレンス、サンプル、およびクイック スタートへのリンクを提供します。
Important
IoT Hub での証明書管理は プレビュー 段階であり、次の DPS デバイス SDK でのみサポートされています:埋め込み C (ベア メタル、無料 RTOS)、C、Python。 IoT HubのSDKはサポートしていません。 詳細については、「証明書管理とは」を参照してください。
SDK カテゴリ
ソフトウェア開発キット (SDK) の 3 つのカテゴリが DPS で動作します。
DPS デバイス SDK は、デバイスに関するデータ プレーンの操作を提供します。 デバイス SDK を使用して、DPS 経由でデバイスをプロビジョニングします。
DPS サービス SDK は、バックエンド アプリに関するデータ プレーンの操作を提供します。 サービス SDK を使用して、個々の登録と登録グループを作成および管理し、デバイス登録レコードのクエリと管理を行います。
DPS 管理 SDK は、バックエンド アプリに関するコントロール プレーンの操作を提供します。 管理 SDK を使用して、DPS インスタンスとメタデータを作成および管理します。 たとえば、サブスクリプションで DPS インスタンスを作成および管理したり、DPS インスタンスで証明書をアップロードして検証したり、DPS インスタンスで承認ポリシーや割り当てポリシーを作成および管理したりするために使用します。
DPS SDK は、IoT ハブにデバイスをプロビジョニングするのに役立ちます。 Microsoft からは、Azure IoT Hub と直接通信するデバイス アプリやバックエンド アプリの構築に役立つ SDK のセットも提供されています。 たとえば、プロビジョニングされたデバイスで IoT ハブにテレメトリを送信したり、必要に応じて、メッセージやジョブ、メソッド、またはツインの更新プログラムを IoT ハブから受け取ったりできます。 詳しくは、「Azure IoT Hub SDK」をご覧ください。
デバイスの SDK
DPS デバイス SDK を使用すると、デバイスは DPS に登録し、その IoT ハブの割り当てを受け取ります。 デバイス SDK を使用して、対称キー、X.509 証明書、または TPM 構成証明を使用してデバイス側プロビジョニングを実装します。 プラットフォーム デバイス SDK は、フル オペレーティング システムを実行するデバイスで使用でき、埋め込みデバイス SDK はリソースに制約のあるマイクロコントローラー ベースのデバイスで使用できます。
プラットフォーム デバイス SDK
DPS デバイス SDK は、DPS を介したプロビジョニングのためにデバイスが呼び出す Register API やその他の実装を提供します。 デバイス SDK は、PC、タブレット、スマートフォン、Raspberry Pi などの一般的な MPU ベースのコンピューティング デバイスで実行できます。 SDK では、C#、Node.js、Python、Java を含む、C 言語と最新のマネージド言語での開発がサポートされています。
次の表に、サポートされている各言語で使用できるデバイス SDK を示します。
| プラットフォーム | パッケージ | コード リポジトリ | サンプル | クイック スタート | リファレンス |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | サンプル | クイックスタート | 参照 |
| C | apt-get、MBED、Arduino IDE、または iOS | GitHub | サンプル | クイックスタート | 参照 |
| Java | Maven | GitHub | サンプル | クイックスタート | 参照 |
| Node.js | npm | GitHub | サンプル | クイックスタート | 参照 |
| Python | pip | GitHub | サンプル | クイックスタート | 参照 |
警告
上記の C SDK は、そのメモリ管理とスレッド モデルが原因で、埋め込みアプリケーションには適していません。 組み込みデバイスについては、「組み込みデバイスの SDK」を参照してください。
証明書管理デバイス SDK (プレビュー)
プレビュー段階で Microsoft がサポートする X.509 証明書管理をサポートする SDK の場合は、次の手順とサンプルを使用します。
| プラットフォーム | インストラクション | Sample |
|---|---|---|
| C | 手順 | サンプル |
| Python | 手順 | サンプル |
組み込みデバイスの SDK
これらの SDK は、コンピューティングとメモリのリソースが限られているデバイスで実行するように設計および作成されており、C 言語を使用して実装されています。
| RTOS | SDK | source | サンプル | リファレンス |
|---|---|---|---|---|
| エクリプス・スレッドX | Azure RTOS ミドルウェア | GitHub | クイックスタート | 参照 |
| FreeRTOS | FreeRTOS ミドルウェア | GitHub | サンプル | 参照 |
| ベアメタル | Azure SDK for Embedded C | GitHub | サンプル | 参照 |
IoT SDK のデバイス SDK と埋め込みデバイス SDK の詳細について説明します。
証明書管理の埋め込みデバイス SDK (プレビュー)
プレビュー段階で Microsoft がサポートする X.509 証明書管理をサポートする埋め込み SDK の場合は、次の手順とサンプルを使用します。
| RTOS | SDK | インストラクション | Sample |
|---|---|---|---|
| FreeRTOS | FreeRTOS ミドルウェア | 手順 | サンプル |
| ベアメタル | Azure SDK for Embedded C | 手順 | サンプル |
サービス SDK
DPS サービス SDK は、DPS インスタンスの登録と登録レコードを管理するためのバックエンド アプリケーションを構築するのに役立ちます。
| プラットフォーム | パッケージ | コード リポジトリ | サンプル | クイック スタート | リファレンス |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | サンプル | クイックスタート | 参照 |
| Java | Maven | GitHub | サンプル | クイックスタート | 参照 |
| Node.js | npm | GitHub | サンプル | クイックスタート | 参照 |
Management SDK
DPS 管理 SDK は、Azure サブスクリプション内の DPS インスタンスとそのメタデータを管理するバックエンド アプリケーションを構築するのに役立ちます。
| プラットフォーム | パッケージ | コード リポジトリ | リファレンス |
|---|---|---|---|
| .NET | NuGet | GitHub | 参照 |
| Java | Maven | GitHub | 参照 |
| Node.js | npm | GitHub | 参照 |
| Python | pip | GitHub | 参照 |
次のステップ
Device Provisioning Service のドキュメントには、SDK とライブラリを試すのに使えるチュートリアルと追加のサンプルが用意されています。