このリファレンスでは、IoT Hubおよび Device Provisioning Service (DPS) 用のデバイス、サービス、管理 SDK、証明書管理用のプレビュー SDK、Azure Digital Twins コントロール プレーンとデータ プレーン API へのリンクなど、IoT ソリューションの構築に使用できるAzure SDKを示します。
デバイスの SDK
Microsoft Azure IoT デバイス SDK には、Azure IoT Hub サービスに接続して管理されるアプリケーションの構築を容易にするコードが含まれています。 これらの SDK は、PC、タブレット、スマートフォン、Raspberry Pi などの一般的な MPU ベースのコンピューティング デバイスで実行できます。 SDK では、C#、Node.js、Python、Javaを含む、C および最新のマネージド言語での開発がサポートされています。
SDK は複数の言語で利用できるため、チームとシナリオに最適な SDK を柔軟に選択できます。
| Language | パッケージ | 情報源 | クイックスタート | サンプル | リファレンス |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | サンプル | リファレンス | |
| Python | pip | GitHub | サンプル | リファレンス | |
| Node.js | npm | GitHub | サンプル | リファレンス | |
| Java | Maven | GitHub | サンプル | リファレンス | |
| C | packages | GitHub | サンプル | リファレンス |
Java デバイス SDK には、Android 用サンプルが含まれています。
C デバイス SDK には、CocoaPods を使用する iOS 用の
Warnung
Azure IoT C SDK は、メモリ管理とスレッド モデルのため、埋め込みアプリケーションには適していません。 組み込みデバイスの SDK オプションについては、組み込みデバイスの SDK を参照してください。
デバイス SDK を使用して、IoT Hubまたは IoT Central に接続する IoT デバイスで実行するコードを開発します。
組み込みデバイスの SDK
これらの SDK は、コンピューティングとメモリのリソースが限られているデバイスで実行するように設計および作成されており、C 言語を使用して実装されています。
組み込みデバイスの SDK は複数のオペレーティング システムで使用できるため、シナリオに最適な SDK を柔軟に選択できます。
| RTOS | SDK | 情報源 | サンプル | リファレンス |
|---|---|---|---|---|
| Eclipse ThreadX | Azure RTOS ミドルウェア | GitHub | クイック スタート | リファレンス |
| FreeRTOS | FreeRTOS ミドルウェア | GitHub | サンプル | リファレンス |
| ベアメタル | 埋め込み C のAzure SDK | GitHub | サンプル | リファレンス |
埋め込みデバイス SDK を使用して、IoT Hubまたは IoT Central に接続する IoT デバイスで実行するコードを開発します。
組み込みデバイス SDK を使うタイミングについて詳しくは、「C SDK と Embedded C SDK の使用シナリオ」を参照してください。
デバイス SDK のライフサイクルとサポート
このセクションでは、Azure IoT Device SDK のライフサイクルとサポート ポリシーの概要を示します。 詳細については、「Azure SDK ライフサイクルとサポート ポリシー」を参照>。
パッケージのライフサイクル
各パッケージは、以下のカテゴリでリリースされます。 カテゴリごとにサポート構造が定義されています。
ベータ - プレビューまたはリリース候補とも呼ばれます。 早期アクセスとフィードバックの目的で使用できますが、運用環境での使用はお勧めしません。 プレビュー バージョンのサポートは、GitHubの問題に限定されます。 プレビュー リリースが公開されるのは通常 6 か月未満であり、その後は非推奨となるか、アクティブとしてリリースされます。
アクティブ - 一般提供されて、完全にサポートされ、新機能の更新プログラムおよびバグとセキュリティの修正プログラムが提供されます。 そのバージョンは修正プログラムと更新プログラムを受け取るため、最新バージョンを使用してください。
非推奨 - より新しいリリースに置き換えられます。 新しいリリースがアクティブになると同時に非推奨となります。 非推奨のリリースでは、さらに 12 か月間、最も重要なバグ修正とセキュリティ修正に対応しています。
サポートを受ける
Azure IoT SDK の使用中に問題が発生した場合は、次のオプションを使用してサポートを求めます。
バグの報告 - すべての顧客が、関連する SDK に関連付けられているGitHub リポジトリの問題ページでバグを報告できます。
Microsoft カスタマー サポート チーム - サポート プラン を持つユーザーは、Azure ポータルから直接サポート チケットを作成することで、Microsoftカスタマー サポート チームと連携できます。
IoT Hub サービス SDK
Azure IoT サービス SDK には、デバイスとセキュリティを管理するためのIoT Hubと直接やり取りするアプリケーションの構築を容易にするコードが含まれています。
| プラットフォーム | パッケージ | コード リポジトリ | サンプル | リファレンス |
|---|---|---|---|---|
| .NET | NuGet | GitHub | サンプル | リファレンス |
| Java | Maven | GitHub | サンプル | リファレンス |
| Node | npm | GitHub | サンプル | リファレンス |
| Python | pip | GitHub | サンプル | リファレンス |
サービス SDK を使用して IoT ハブ経由でデバイスと対話する方法の詳細については、IoT プラグ アンド プレイ サービス開発者ガイドを参照してください。
IoT Hub管理 SDK
IoT Hub管理 SDK は、Azure サブスクリプション内の IoT ハブを管理するバックエンド アプリケーションを構築するのに役立ちます。
| プラットフォーム | パッケージ | コード リポジトリ | リファレンス |
|---|---|---|---|
| .NET | NuGet | GitHub | リファレンス |
| Java | Maven | GitHub | リファレンス |
| Node.js | npm | GitHub | リファレンス |
| Python | pip | GitHub | リファレンス |
管理 SDK の代わりに、Azure CLI、PowerShell、REST API があります。
DPS デバイス 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 | サンプル | クイックスタート | リファレンス |
Warnung
上記の C SDK は、そのメモリ管理とスレッド モデルが原因で、埋め込みアプリケーションには適していません。 組み込みデバイスについては、「組み込みデバイスの SDK」を参照してください。
DPS 組み込みデバイス SDK
これらの SDK は、コンピューティングとメモリのリソースが限られているデバイスで実行するように設計および作成されており、C 言語を使用して実装されています。
| RTOS | SDK | 情報源 | サンプル | リファレンス |
|---|---|---|---|---|
| Eclipse ThreadX | Azure RTOS ミドルウェア | GitHub | クイック スタート | リファレンス |
| FreeRTOS | FreeRTOS ミドルウェア | GitHub | サンプル | リファレンス |
| ベアメタル | 埋め込み C のAzure SDK | GitHub | サンプル | リファレンス |
IoT SDK のデバイス SDK と埋め込みデバイス SDK の詳細について説明します。
DPS サービス SDK
DPS サービス SDK は、DPS インスタンスの登録と登録レコードを管理するためのバックエンド アプリケーションを構築するのに役立ちます。
| プラットフォーム | パッケージ | コード リポジトリ | サンプル | クイック スタート | リファレンス |
|---|---|---|---|---|---|
| .NET | NuGet | GitHub | サンプル | クイックスタート | リファレンス |
| Java | Maven | GitHub | サンプル | クイックスタート | リファレンス |
| Node.js | npm | GitHub | サンプル | クイックスタート | リファレンス |
DPS 管理 SDK
DPS 管理 SDK は、Azure サブスクリプション内の DPS インスタンスとそのメタデータを管理するバックエンド アプリケーションの構築に役立ちます。
| プラットフォーム | パッケージ | コード リポジトリ | リファレンス |
|---|---|---|---|
| .NET | NuGet | GitHub | リファレンス |
| Java | Maven | GitHub | リファレンス |
| Node.js | npm | GitHub | リファレンス |
| Python | pip | GitHub | リファレンス |
証明書管理 SDK (プレビュー)
プレビュー段階Microsoft X.509 証明書管理をサポートする SDK の場合は、次の手順とサンプルを使用します。 プレビューで証明書管理 SDK を使用するには、リンクされた DPS インスタンスでAzure IoT Hubを使用する必要があり、デバイスは DPS 経由でプロビジョニングする必要があります。
証明書管理デバイス SDK (プレビュー)
次の表は、現在、プレビュー段階Microsoft X.509 証明書管理をサポートしているプラットフォーム 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 at feature/dps-csr-preview | paho_iot_hub_csr_sample.c |
コントロール プレーン API のAzure Digital Twins
コントロール プレーン API は、Azure Digital Twins インスタンス全体の管理に使用される ARM API であるため、インスタンス全体の作成や削除などの操作が対象となります。 また、エンドポイントの作成と削除にもこれらの API を使用します。
API を直接呼び出すには、control plane Swagger リポジトリの最新の Swagger フォルダーを参照します。 このフォルダーには、使用法を示す例が保存されているフォルダーも含まれています。
Azure Digital Twins コントロール プレーン API で現在使用できる SDK を次に示します。
| SDK 言語 | パッケージ リンク | リファレンス ドキュメント | ソース コード |
|---|---|---|---|
| .NET (C#) | Azure。NuGet 上の ResourceManager.DigitalTwins | Microsoft Azure Digital Twins management client library for .NET on GitHub | |
| Java | Maven の azure-resourcemanager-digitaltwins | リソース管理のリファレンス - Digital Twins | |
| JavaScript | npm の JavaScript 用 AzureDigitalTwinsManagement クライアント ライブラリ | AzureDigitalTwinsManagement クライアント ライブラリ for JavaScript on GitHub | |
| Python | PyPI の azure-mgmt-digitaltwins | Microsoft Azure SDK for Python on GitHub | |
| Go | azure-sdk-for-go/services/digitaltwins/mgmt | go on GitHubAzure SDK |
データ プレーン API のAzure Digital Twins
データ プレーン API は、Azure Digital Twins インスタンス内の要素を管理するために使用されるAzure Digital Twins API です。 たとえば、ルートの作成、モデルのアップロード、リレーションシップの作成、ツインの管理などの操作が含まれ、大まかに次のカテゴリーに分類できます。
-
DigitalTwinModels- DigitalTwinModels カテゴリには、Azure Digital Twins インスタンスの models を管理するための API が含まれています。 管理アクティビティには、DTDL で作成されたモデルのアップロード、検証、取得、および削除が含まれます。 -
DigitalTwins- DigitalTwins カテゴリには、開発者が Azure Digital Twins インスタンス内の digital twins とそのリレーションシップを作成、変更、削除できる API が含まれています。 -
Query- Query カテゴリでは、開発者はリレーションシップにわたるツイン グラフで一連の Digital Twins を検索できます。 -
Event Routes- Event Routes カテゴリには、システムを通してダウンストリーミング サービスにデータをルーティングする API が含まれています。 -
Import Jobs- Import Jobs API を使うと、実行時間の長い非同期アクションを管理して、モデル、ツイン、リレーションシップを一括でインポートすることができます。 -
Delete Jobs- Delete Jobs API を使うと、実行時間の長い非同期アクションを管理して、インスタンスのすべてのモデル、ツイン、リレーションシップを削除することができます。
API を直接呼び出すには、data プレーン Swagger リポジトリ内の最新の Swagger フォルダーを参照します。 このフォルダーには、使用法を示す例が保存されているフォルダーも含まれています。 データ プレーン API リファレンス ドキュメントを表示することもできます。
Azure Digital Twins データ プレーン API で現在使用できる SDK を次に示します。
| SDK 言語 | パッケージ リンク | リファレンス ドキュメント | ソース コード |
|---|---|---|---|
| .NET (C#) | Azure。DigitalTwins.Core on NuGet | ||
| Java | Maven の com.azure:azure-digitaltwins-core | reference for Azure Digital Twins SDK for Java | |
| JavaScript | Reference for @azure/digital-twins-core | ||
| Python | Azure Azure Digital Twins PyPI 上のPython用のコア クライアント ライブラリ | azure-digitaltwins-core のリファレンス |
次のステップ
推奨される次の手順は以下のとおりです。