IoT Hub Device Provisioning Service (DPS) 用の Microsoft SDK は、IoT デバイスを 1 つ以上の IoT ハブにプロビジョニングするデバイスアプリケーションとバックエンド アプリケーションを構築するのに役立ちます。 SDK は、デバイスまたはバックエンド アプリと DPS の間の基になるトランスポートおよびセキュリティ プロトコルを処理するため、アプリケーション開発に集中できます。 SDK を使用すると、今後の DPS の更新プログラム (セキュリティ更新プログラムなど) のサポートを受けられます。 この記事では、SDK の 3 つのカテゴリについて説明し、一般的な言語で公開されている DPS SDK の一覧を示し、SDK のリファレンス、サンプル、およびクイック スタートへのリンクを提供します。
Important
IoT Hubでの証明書の管理は preview にあり、埋め込み C (ベア メタル、無料 RTOS)、C、およびPythonの DPS デバイス SDK でのみサポートされます。 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 | サンプル | クイックスタート | Reference |
| Java | Maven | GitHub | サンプル | クイックスタート | 参照 |
| Node.js | npm | GitHub | サンプル | クイックスタート | 参照 |
| Python | pip | GitHub | サンプル | クイックスタート | 参照 |
警告
上記の C SDK は、そのメモリ管理とスレッド モデルが原因で、埋め込みアプリケーションには適していません。 組み込みデバイスについては、「組み込みデバイスの SDK」を参照してください。
証明書管理デバイス SDK (プレビュー)
次の表は、現在、プレビュー段階Microsoft X.509 証明書管理をサポートしているプラットフォーム SDK の一覧です。
組み込みデバイスの SDK
これらの SDK は、コンピューティングとメモリのリソースが限られているデバイスで実行するように設計および作成されており、C 言語を使用して実装されています。
| RTOS | SDK | source | サンプル | リファレンス |
|---|---|---|---|---|
| エクリプス・スレッドX | Azure RTOS ミドルウェア | GitHub | クイックスタート | 参照 |
| FreeRTOS | FreeRTOS ミドルウェア | GitHub | サンプル | 参照 |
| ベアメタル | 埋め込み C のAzure SDK | GitHub | サンプル | 参照 |
IoT SDK のデバイス SDK と埋め込みデバイス SDK の詳細について説明します。
証明書管理の埋め込みデバイス SDK (プレビュー)
次の表は、現在プレビュー段階でMicrosoftサポートされている X.509 証明書管理をサポートしている埋め込み SDK の一覧です。
| RTOS | SDK | source | サンプル |
|---|---|---|---|
| FreeRTOS | FreeRTOS ミドルウェア | Azure/azure-iot-middleware-freertos at feature/dps-csr-preview | 該当なし |
| ベアメタル | 埋め込み C のAzure SDK | Azure/azure-sdk-for-c at feature/dps-csr-preview | paho_iot_hub_csr_sample.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 とライブラリを試すのに使えるチュートリアルと追加のサンプルが用意されています。