IoT Hub Device Provisioning Service (DPS) 用の Microsoft SDK は、IoT デバイスを 1 つ以上の IoT ハブにプロビジョニングするデバイスアプリケーションとバックエンド アプリケーションを構築するのに役立ちます。 SDK は、デバイスまたはバックエンド アプリと DPS の間の基になるトランスポートおよびセキュリティ プロトコルを処理するため、アプリケーション開発に集中できます。 SDK を使用すると、今後の DPS の更新プログラム (セキュリティ更新プログラムなど) のサポートを受けられます。 この記事では、SDK の 3 つのカテゴリについて説明し、一般的な言語で公開されている DPS SDK の一覧を示し、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
これらの SDK は、コンピューティングとメモリのリソースが限られているデバイスで実行するように設計および作成されており、C 言語を使用して実装されています。
| RTOS | SDK | source | サンプル | リファレンス |
|---|---|---|---|---|
| エクリプス・スレッドX | Azure RTOS ミドルウェア | GitHub | クイックスタート | 参照 |
| FreeRTOS | FreeRTOS ミドルウェア | GitHub | サンプル | 参照 |
| ベアメタル | 埋め込み C のAzure SDK | GitHub | サンプル | 参照 |
IoT SDK のデバイス SDK と埋め込みデバイス SDK の詳細について説明します。
サービス 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 とライブラリを試すのに使えるチュートリアルと追加のサンプルが用意されています。