クイックスタート: シミュレートされた対称キー デバイスをプロビジョニングする

このクイックスタートでは、シミュレートされたデバイスを Windows マシンに作成します。 シミュレートされたデバイスは、認証のために対称キー構成証明のメカニズムを使用するように構成されます。 デバイスを構成した後、Azure IoT Hub Device Provisioning Service を使用して IoT ハブにプロビジョニングします。

プロビジョニングのプロセスに慣れていない場合は、プロビジョニングの概要を確認してください。

このクイックスタートでは、Windows ベース ワークステーションのソリューションについて説明します。 しかし、Linux でこの手順を行うこともできます。 Linux の例については、「チュートリアル: geo 待機時間のためのプロビジョニング」を参照してください。

前提条件

  • Windows 開発環境を使用する場合は、"C++ によるデスクトップ開発" のワークロードが有効になっている Visual Studio 2019 をインストールします。 Visual Studio 2015 と Visual Studio 2017 もサポートされています。 Linux または macOS については、SDK ドキュメントの「開発環境を準備する」の該当するセクションを参照してください。
  • Windows ベースのコンピューターに .NET SDK 6.0 以降をインストールします。 次のコマンドを使用してバージョンを確認してください。

    dotnet --info
    
  • Windows ベースのコンピューターに Python 3.7 以降をインストールします。 python --version を実行して、使用している Python のバージョンを確認できます。
  • コンピューターに Java SE Development Kit 8 以降をインストールします。

  • Maven をダウンロードし、インストールします。

  • 最新バージョンの Git をインストールします。 コマンド ウィンドウからアクセスできる環境変数に Git が追加されていることを確認します。 Git Bash (ローカル Git リポジトリとやりとりする際に使用できるコマンドライン アプリ) を含む、インストールする git ツールの最新バージョンについては、Software Freedom Conservancy の Git クライアント ツールに関するページを参照してください。

開発環境を準備する

このセクションでは、Azure IoT C SDK のビルドに使用する開発環境を準備します。 このサンプル コードでは、デバイスのブート シーケンス中にデバイスのプロビジョニングを試みます。

  1. 最新の CMake ビルド システムをダウンロードします。

    重要

    CMake のインストールを開始する前に、Visual Studio の前提条件 (Visual Studio と "C++ によるデスクトップ開発" ワークロード) がコンピューターにインストールされていることを確認します。 前提条件を満たし、ダウンロードを検証したら、CMake ビルド システムをインストールします。 また、以前のバージョンの CMake ビルド システムでは、この記事で使用されているソリューション ファイルを生成できないことに注意してください。 必ず最新バージョンの CMake を使用してください。

  2. Web ブラウザーを開き、Azure IoT C SDK のリリース ページに移動します。

  3. そのページの上部にある [タグ] タブを選択します。

  4. 最新リリースの Azure IoT C SDK のタグ名をコピーします。

  5. コマンド プロンプトまたは Git Bash シェルを開きます。 次のコマンドを実行して、最新リリースの C 用 Azure IoT Device SDK の GitHub リポジトリを複製します。 <release-tag> を前のステップでコピーしたタグで置き換えます (例: lts_01_2023)。

    git clone -b <release-tag> https://github.com/Azure/azure-iot-sdk-c.git
    cd azure-iot-sdk-c
    git submodule update --init
    

    この操作が完了するまで数分かかる場合があります。

  6. 操作が完了したら、azure-iot-sdk-c ディレクトリから次のコマンドを実行します。

    mkdir cmake
    cd cmake
    
  7. このコード サンプルでは、対称キーを使用して構成証明を指定します。 次のコマンドを実行して、デバイス プロビジョニング クライアントを含む開発クライアント プラットフォームに固有の SDK のバージョンをビルドします。

    cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    

    ヒント

    cmake で C++ コンパイラが見つからない場合は、上記のコマンドの実行中にビルド エラーが発生する可能性があります。 これが発生した場合は、Visual Studio コマンド プロンプトでコマンドを実行してください。

  8. ビルドが正常に完了すると、最後のいくつかの出力行は次の出力のようになります。

    $ cmake -Dhsm_type_symm_key:BOOL=ON -Duse_prov_client:BOOL=ON  ..
    -- Building for: Visual Studio 16 2019
    -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19042.
    -- The C compiler identification is MSVC 19.29.30040.0
    -- The CXX compiler identification is MSVC 19.29.30040.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: E:/IoT Testing/azure-iot-sdk-c/cmake
    
  1. Git CMD または Git Bash コマンド ライン環境を開きます。

  2. 次のコマンドを使用して、Azure IoT SDK for C# の GitHub リポジトリをクローンします。

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Git CMD または Git Bash コマンド ライン環境を開きます。

  2. 次のコマンドを使用して、Azure IoT SDK for Node.js の GitHub リポジトリをクローンします。

    git clone https://github.com/Azure/azure-iot-sdk-node.git --recursive
    
  1. Git CMD または Git Bash コマンド ライン環境を開きます。

  2. 次のコマンドを使用して、Azure IoT SDK for Python の GitHub リポジトリをクローンします。

    git clone -b v2 https://github.com/Azure/azure-iot-sdk-python.git --recursive
    

    注意

    このチュートリアルで使用するサンプルは、azure-iot-sdk-python リポジトリの v2 ブランチにあります。 Python SDK の V3 はベータ版で使用できます。

  1. Git CMD または Git Bash コマンド ライン環境を開きます。

  2. 次のコマンドを使用して、Azure IoT SDK for Java の GitHub リポジトリをクローンします。

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    
  3. ルート azure-iot-sdk-java ディレクトリに移動し、プロジェクトをビルドして必要なパッケージをすべてダウンロードします。 この手順は、完了するまでに数分かかることがあります。

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    

デバイス登録を作成する

Azure IoT Device Provisioning Service では、次の 2 種類の登録がサポートされています。

  • 登録グループ:複数の関連するデバイスを登録するために使用します。
  • 個別登録: 単一デバイスを登録するために使用します。

この記事では、IoT ハブに単一のデバイスをプロビジョニングする個別登録のデモを行います。

  1. Azure portal にサインインし、Device Provisioning Service インスタンスに移動します。

  2. ナビゲーション メニューの [設定] セクションから [Manage enrollments] (登録の管理) を選択します。

  3. [個々の登録] タブを選択し、[個別登録の追加] を選択します。

    Screenshot that shows the add individual enrollment option.

  4. [登録の追加] ページの [登録とプロビジョニング] で、次の情報を入力して登録の詳細を構成します。

    フィールド 説明
    構成証明 [Attestation mechanism] (構成証明メカニズム) として [対称キー] を選択します。
    Symmetric key settings (対称キーの設定) ランダムに生成されたキーを使用する場合は、[Generate symmetric keys automatically] (対称キーを自動的に生成) ボックスをオンにします。 独自のキーを指定する場合は、このボックスをオフにします。
    登録 ID デバイスの一意の登録 ID を指定します。
    プロビジョニングの状態 この登録をデバイスのプロビジョニングに使用できるようにする場合は、[この登録を有効にする] チェック ボックスをオンにします。 登録を無効にする場合は、このチェック ボックスをオフにします。 この設定は後で変更できます。
    再プロビジョニング ポリシー 再プロビジョニングを要求するデバイスを DPS で処理する方法を反映する再プロビジョニング ポリシーを選択します。 詳細については、再プロビジョニング ポリシーに関するページを参照してください。
  5. [Next: IoT hubs] (次へ: IoT ハブ) を選択します。

  6. [登録の追加] ページの [IoT ハブ] タブで、次の情報を入力して、登録でデバイスをプロビジョニングできる IoT ハブを決定します。

    フィールド 説明
    Target IoT hubs (ターゲット IoT ハブ) 1 つ以上のリンクされた IoT ハブを選択するか、IoT ハブへの新しいリンクを追加します。 IoT ハブを DPS インスタンスにリンクする方法の詳細については、IoT ハブをリンクして管理する方法に関するページを参照してください。
    割り当てポリシー 複数のリンクされた IoT ハブを選択した場合は、デバイスを別のハブに割り当てる方法を選択します。 割り当てポリシーの詳細については、割り当てポリシーの使用方法に関するページを参照してください。

    リンクされた IoT ハブを 1 つだけ選択した場合は、加重が均等に分布ポリシーを使用することをお勧めします。
  7. [次へ: デバイスの設定] を選択します

  8. [登録の追加] ページの [デバイス設定] タブで、次の情報を入力して、新しくプロビジョニングされたデバイスの構成方法を定義します。

    フィールド 説明
    Device ID IoT Hub でプロビジョニングされたデバイスに割り当てられるデバイス ID を指定します。 デバイス ID を指定しなかった場合は、登録 ID が使用されます。
    IoT Edge プロビジョニングされたデバイスで Azure IoT Edge が実行される場合は、[プロビジョニングされたデバイスで IoT Edge を有効にする] をオンにします。 この登録が非 IoT Edge 対応デバイス用である場合は、このボックスをオフにします。
    デバイス タグ このテキスト ボックスを使用して、プロビジョニングされたデバイスのデバイス ツインに適用するタグを指定します。
    必要なプロパティ このテキスト ボックスを使用して、プロビジョニングされたデバイスのデバイス ツインに適用する必要なプロパティを指定します。

    詳細については、「IoT Hub のデバイス ツインの理解と使用」を参照してください。

  9. 確認と作成 をクリックします。

  10. [確認 + 作成] タブで、すべての値を確認してから [作成] を選択します。

個々の登録を作成すると、主キーセカンダリ キーが生成され、登録エントリに追加されます。 このクイックスタートで後に出てくるデバイス サンプルでは主キーを使用します。

  1. シミュレートされた対称キー デバイスの登録を表示するには、[個々の登録] タブを選択します。

  2. 個々の登録の一覧からデバイスの登録 ID を選択します。

  3. 生成された主キーの値をコピーします。

    Screenshot showing the enrollment details, highlighting the Copy button for the primary key of the device enrollment

デバイス プロビジョニング コードを準備して実行する

このセクションでは、デバイスのブート シーケンスを Device Provisioning Service インスタンスに送信するようにデバイス サンプル コードを更新します。 このブート シーケンスを行うと、デバイスが認識され、認証されて、Device Provisioning Service インスタンスにリンクされた IoT ハブに割り当てられます。

サンプル プロビジョニング コードでは、次のタスクを順に実行します。

  1. 次の 3 つのパラメーターを使用して、Device Provisioning リソースでデバイスを認証します。

    • Device Provisioning Service の ID スコープ
    • デバイス登録の登録 ID。
    • デバイス登録の主対称キー。
  2. Device Provisioning Service インスタンスに既にリンクされている IoT ハブにデバイスを割り当てます。

デバイス情報を使用してプロビジョニング サンプルを更新して実行するには、次のようにします。

  1. Device Provisioning Service のメイン メニューで、 [概要] を選択します。

  2. [ID スコープ] の値をコピーします。

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the ID Scope value for the instance.

  3. CMake を実行して生成された azure_iot_sdks.sln ソリューション ファイルを Visual Studio で開きます。 ソリューション ファイルは次の場所にあります。

    
    \azure-iot-sdk-c\cmake\azure_iot_sdks.sln
    
    

    ヒント

    cmake ディレクトリにファイルが生成されていない場合は、最新バージョンの CMake ビルド システムを使用していることを確認してください。

  4. Visual Studio の [ソリューション エクスプローラー] ウィンドウで、Provision_Samples フォルダーに移動します。 prov_dev_client_sample という名前のサンプル プロジェクトを展開します。 [ソース ファイル] を展開して、prov_dev_client_sample.c を開きます。

  5. 定数 id_scope を探し、手順 2 でコピーした ID スコープの値で置き換えます。

    static const char* id_scope = "0ne00002193";
    
  6. 同じファイル内で main() 関数の定義を探します。 次の例に示すように、hsm_type 変数が SECURE_DEVICE_TYPE_SYMMETRIC_KEY に設定されていることを確認します。

    SECURE_DEVICE_TYPE hsm_type;
    //hsm_type = SECURE_DEVICE_TYPE_TPM;
    //hsm_type = SECURE_DEVICE_TYPE_X509;
    hsm_type = SECURE_DEVICE_TYPE_SYMMETRIC_KEY;
    
  7. prov_dev_client_sample.c で、コメントになっている prov_dev_set_symmetric_key_info() の呼び出しを探します。

    // Set the symmetric key if using they auth type
    //prov_dev_set_symmetric_key_info("<symm_registration_id>", "<symmetric_Key>");
    

    関数呼び出しのコメントを解除し、プレースホルダーの値 (山かっこを含む) を、自分のデバイスの登録 ID と、先ほどコピーした主キーの値に置き換えます。

    // Set the symmetric key if using they auth type
    prov_dev_set_symmetric_key_info("symm-key-device-007", "your primary key here");
    
  8. ファイルを保存します。

  9. prov_dev_client_sample プロジェクトを右クリックし、[スタートアップ プロジェクトに設定] を選びます。

  10. Visual Studio のメニューで [デバッグ]>[デバッグなしで開始] の順に選択して、ソリューションを実行します。 プロジェクトをリビルドするよう求められたら、 [はい] を選択して、プロジェクトをリビルドしてから実行します。

    次の出力は、プロビジョニング サービス インスタンスに正常に接続して IoT ハブに割り当てられているデバイスの例です。

    Provisioning API Version: 1.2.8
    
    Registering Device
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service:
    test-docs-hub.azure-devices.net, deviceId: device-007
    Press enter key to exit:
    

サンプル プロビジョニング コードでは次のタスクを実行します。

  1. 次の 3 つのパラメーターを使用して、Device Provisioning リソースでデバイスを認証します。

    • Device Provisioning Service の ID スコープ
    • デバイス登録の登録 ID。
    • デバイス登録の主対称キー。
  2. Device Provisioning Service インスタンスに既にリンクされている IoT ハブにデバイスを割り当てます。

  3. テスト テレメトリ メッセージを IoT ハブに送信します。

デバイス情報を使用してプロビジョニング サンプルを更新して実行するには、次のようにします。

  1. Device Provisioning Service のメイン メニューで、 [概要] を選択します。

  2. [ID スコープ] の値をコピーします。

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the ID Scope value for the instance.

  3. コマンド プロンプトを開き、クローンした sdk リポジトリ内の SymmetricKeySample に移動します。

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample\'
    
  4. SymmetricKeySample フォルダーの Parameters.cs をテキスト エディターで開きます。 このファイルは、サンプルで使用可能なパラメーターを示しています。 この記事では、サンプルを実行するときに、最初の 3 つの必須パラメーターのみを使用します。 このファイルのコードを確認します。 変更は不要です。

    パラメーター 必須 説明
    --i または --IdScope DPS インスタンスの ID スコープ
    --r または --RegistrationId 登録 ID は、英数字と特殊文字 ('-''.''_'':') から成る、大文字と小文字が区別されない文字列です (最大 128 文字)。 最後の文字は、英数字またはダッシュ ('-') である必要があります。
    --p または --PrimaryKey 個々の登録の主キーまたはグループ登録の派生デバイス キー。 派生キーを生成する方法については、ComputeDerivedSymmetricKeySample を参照してください。
    --g または --GlobalDeviceEndpoint × デバイスの接続先となるグローバル エンドポイント。 既定値は global.azure-devices-provisioning.net です
    --t または --TransportType × デバイス プロビジョニング インスタンスとの通信に使用するトランスポート。 既定値は Mqtt です。 指定できる値は、MqttMqtt_WebSocket_OnlyMqtt_Tcp_OnlyAmqpAmqp_WebSocket_OnlyAmqp_Tcp_only、および Http1 です。
  5. SymmetricKeySample フォルダーの ProvisioningDeviceClientSample.cs をテキスト エディターで開きます。 このファイルには、SecurityProviderSymmetricKey クラスを ProvisioningDeviceClient クラスと共に使用して、シミュレートされた対称キー デバイスをプロビジョニングする方法が示されます。 このファイルのコードを確認します。 変更は不要です。

  6. 次のコマンドを使用してサンプル コードをビルドし、実行します。

    • <id-scope> を、手順 2 でコピーした ID スコープに置き換えます。
    • <registration-id> を、デバイス登録に指定した登録 ID に置き換えます。
    • <primarykey> を、デバイス登録からコピーしたプライマリ キーに置き換えます。
    dotnet run --i <id-scope> --r <registration-id> --p <primarykey>
    
  7. これで次の出力のようになるはずです。 テスト メッセージとして "TestMessage" という文字列がハブに送信されます。

    D:\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\SymmetricKeySample>dotnet run --i 0ne00000A0A --r symm-key-csharp-device-01 --p sbDDeEzRuEuGKag+kQKV+T1QGakRtHpsERLP0yPjwR93TrpEgEh/Y07CXstfha6dhIPWvdD1nRxK5T0KGKA+nQ==
    
    Initializing the device provisioning client...
    Initialized for registration Id symm-key-csharp-device-01.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device csharp-device-01 registered to ExampleIoTHub.azure-devices.net.
    Creating symmetric key authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    Enter any key to exit.
    

サンプル プロビジョニング コードでは、次のタスクを順に実行します。

  1. 次の 4 つのパラメーターを使用して、Device Provisioning リソースでデバイスを認証します。

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Device Provisioning Service インスタンスに既にリンクされている IoT ハブにデバイスを割り当てます。

  3. テスト テレメトリ メッセージを IoT ハブに送信します。

デバイス情報を使用してプロビジョニング サンプルを更新して実行するには、次のようにします。

  1. Device Provisioning Service のメイン メニューで、 [概要] を選択します。

  2. [ID スコープ][グローバル デバイス エンドポイント] の値をコピーします。

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Node.js コマンドを実行するためのコマンド プロンプトを開き、次のディレクトリに移動します。

    cd azure-iot-sdk-node/provisioning/device/samples
    
  4. provisioning/device/samples フォルダーの register_symkey.js を開いて、コードを確認します。 サンプル コードでカスタム ペイロードが設定されていることに注目してください。

    provisioningClient.setProvisioningPayload({a: 'b'});
    

    このコードはこのクイックスタートでは必要ないため、コメントアウトしてもかまいません。 カスタム ペイロードは、カスタム割り当て関数を使用して IoT ハブにデバイスを割り当てる場合に必要になります。 詳細については、カスタム割り当てポリシーの使用に関するチュートリアルを参照してください。

    provisioningClient.register() は、デバイスの登録を試行するメソッドです。

    これ以上の変更は必要ありません。

  5. コマンド プロンプトで、次のコマンドを実行して、サンプルによって使用される環境変数を設定します。

    • <provisioning-global-endpoint> を、手順 2 でコピーしたグローバル デバイス エンドポイントに置き換えます。
    • <id-scope> を、手順 2 でコピーした ID スコープに置き換えます。
    • <registration-id> を、デバイス登録に指定した登録 ID に置き換えます。
    • <primarykey> を、デバイス登録からコピーしたプライマリ キーに置き換えます。
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  6. 次のコマンドを使用して、サンプル コードをビルドし、実行します。

     npm install
    
    node register_symkey.js
    
  7. これで次の出力のようになるはずです。 テスト メッセージとして "Hello World" という文字列がハブに送信されます。

    D:\azure-iot-samples-csharp\provisioning\device\samples>node register_symkey.js
    registration succeeded
    assigned hub=ExampleIoTHub.azure-devices.net
    deviceId=nodejs-device-01
    payload=undefined
    Client connected
    send status: MessageEnqueued
    

サンプル プロビジョニング コードでは、次のタスクを順に実行します。

  1. 次の 4 つのパラメーターを使用して、Device Provisioning リソースでデバイスを認証します。

    • PROVISIONING_HOST
    • PROVISIONING_IDSCOPE
    • PROVISIONING_REGISTRATION_ID
    • PROVISIONING_SYMMETRIC_KEY
  2. Device Provisioning Service インスタンスに既にリンクされている IoT ハブにデバイスを割り当てます。

  3. テスト テレメトリ メッセージを IoT ハブに送信します。

デバイス情報を使用してプロビジョニング サンプルを更新して実行するには、次のようにします。

  1. Device Provisioning Service のメイン メニューで、 [概要] を選択します。

  2. [ID スコープ][グローバル デバイス エンドポイント] の値をコピーします。

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. コマンド プロンプトを開き、サンプル ファイルの provision_symmetric_key.py があるディレクトリに移動します。

    cd azure-iot-sdk-python\samples\async-hub-scenarios
    
  4. コマンド プロンプトで、次のコマンドを実行して、サンプルによって使用される環境変数を設定します。

    • <provisioning-global-endpoint> を、手順 2 でコピーしたグローバル デバイス エンドポイントに置き換えます。
    • <id-scope> を、手順 2 でコピーした ID スコープに置き換えます。
    • <registration-id> を、デバイス登録に指定した登録 ID に置き換えます。
    • <primarykey> を、デバイス登録からコピーしたプライマリ キーに置き換えます。
    set PROVISIONING_HOST=<provisioning-global-endpoint>
    
    set PROVISIONING_IDSCOPE=<id-scope>
    
    set PROVISIONING_REGISTRATION_ID=<registration-id>
    
    set PROVISIONING_SYMMETRIC_KEY=<primarykey>
    
  5. 次のコマンドを実行して、azure-iot-device ライブラリをインストールします。

    pip install azure-iot-device
    
  6. provision_symmetric_key.py の Python サンプル コードを実行します。

    python provision_symmetric_key.py
    
  7. これで次の出力のようになるはずです。 一部の風速テレメトリ メッセージも、テストとしてハブに送信されます。

    D:\azure-iot-sdk-python\samples\async-hub-scenarios>python provision_symmetric_key.py
    RegistrationStage(RequestAndResponseOperation): Op will transition into polling after interval 2.  Setting timer.
    The complete registration result is
    python-device-008
    docs-test-iot-hub.azure-devices.net
    initialAssignment
    null
    Will send telemetry from the provisioned device
    sending message #8
    sending message #9
    sending message #3
    sending message #10
    sending message #4
    sending message #2
    sending message #6
    sending message #7
    sending message #1
    sending message #5
    done sending message #8
    done sending message #9
    done sending message #3
    done sending message #10
    done sending message #4
    done sending message #2
    done sending message #6
    done sending message #7
    done sending message #1
    done sending message #5
    

サンプル プロビジョニング コードでは、次のタスクを順に実行します。

  1. 次の 4 つのパラメーターを使用して、Device Provisioning リソースでデバイスを認証します。

    • GLOBAL_ENDPOINT
    • SCOPE_ID
    • REGISTRATION_ID
    • SYMMETRIC_KEY
  2. Device Provisioning Service インスタンスに既にリンクされている IoT ハブにデバイスを割り当てます。

  3. テスト テレメトリ メッセージを IoT ハブに送信します。

デバイス情報を使用してプロビジョニング サンプルを更新して実行するには、次のようにします。

  1. Device Provisioning Service のメイン メニューで、 [概要] を選択します。

  2. [ID スコープ][グローバル デバイス エンドポイント] の値をコピーします。 これらの値はそれぞれ、SCOPE_ID パラメーターと GLOBAL_ENDPOINT パラメーターです。

    Screenshot showing the overview of the Device Provisioning Service instance, highlighting the global device endpoint and ID Scope values for the instance.

  3. Java デバイス サンプル コードを開いて編集します。 デバイスのサンプル コードの完全パスは次のとおりです。

    azure-iot-sdk-java/provisioning/provisioning-device-client-samples/provisioning-symmetrickey-individual-sample/src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningSymmetricKeyIndividualEnrollmentSample.java

  4. DPS とデバイスの登録に対して、次の変数の値を設定します。

    • <id-scope> を、手順 2 でコピーした ID スコープに置き換えます。
    • <provisioning-global-endpoint> を、手順 2 でコピーしたグローバル デバイス エンドポイントに置き換えます。
    • <registration-id> を、デバイス登録に指定した登録 ID に置き換えます。
    • <primarykey> を、デバイス登録からコピーしたプライマリ キーに置き換えます。
    private static final String SCOPE_ID = "<id-scope>";
    private static final String GLOBAL_ENDPOINT = "<provisioning-global-endpoint>";
    private static final String SYMMETRIC_KEY = "<primarykey>";
    private static final String REGISTRATION_ID = "<registration-id>";
    
  5. ビルドを実行するために、コマンド プロンプトを開きます。 Java SDK リポジトリのプロビジョニング サンプル プロジェクト フォルダーに移動します。

    cd azure-iot-sdk-java\provisioning\provisioning-device-client-samples\provisioning-symmetrickey-individual-sample
    
  6. サンプルをビルドします。

    mvn clean install
    
  7. target フォルダーに移動し、作成した .jar ファイルを実行します。 java コマンドで、{version} プレースホルダーをマシンの .jar ファイル名のバージョンに置き換えます。

    cd target
    java -jar ./provisioning-symmetrickey-individual-sample-{version}-with-deps.jar
    
  8. これで次の出力のようになるはずです。

    Starting...
    Beginning setup.
    Initialized a ProvisioningDeviceClient instance using SDK version 1.11.0
    Starting provisioning thread...
    Waiting for Provisioning Service to register
    Opening the connection to device provisioning service...
    Connection to device provisioning service opened successfully, sending initial device registration message
    Authenticating with device provisioning service using symmetric key
    Waiting for device provisioning service to provision this device...
    Current provisioning status: ASSIGNING
    Device provisioning service assigned the device successfully
    IotHUb Uri : <Your IoT hub name>.azure-devices.net
    Device ID : java-device-007
    Sending message from device to IoT Hub...
    Press any key to exit...
    Message received! Response status: OK_EMPTY
    

デバイス プロビジョニングの登録を確認する

  1. Azure ポータルにアクセスします。

  2. 左側のメニューまたはポータル ページで、 [すべてのリソース] を選択します。

  3. デバイスが割り当てられた IoT ハブを選択します。

  4. [デバイス管理] メニューで、[デバイス] を選択します。

  5. デバイスが正常にプロビジョニングされた場合は、デバイス ID が一覧に表示され、[状態][有効] として設定されているはずです。 デバイスが表示されていない場合は、ページの上部にある [最新の情報に更新] を選択します。

    Screenshot showing that the device is registered with the IoT hub and enabled for the C example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the C# example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Node.js example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Python example.

    Screenshot showing that the device is registered with the IoT hub and enabled for the Java example.

Note

[Initial device twin state](初期のデバイス ツインの状態) をデバイスの登録エントリの既定値から変更した場合、デバイスはハブから目的のツインの状態をプルし、それに従って動作することができます。 詳細については、「IoT Hub のデバイス ツインの理解と使用」を参照してください。

リソースをクリーンアップする

デバイス クライアント サンプルでの作業と確認を続行する予定の場合は、このクイックスタートで作成したリソースをクリーンアップしないでください。 続行する予定がない場合は、次の手順を使用して、このクイックスタートで作成したすべてのリソースを削除してください。

デバイスの登録を削除する

  1. マシンに表示されているデバイス クライアント サンプルの出力ウィンドウを閉じます。

  2. Azure portal の左側のメニューから、 [すべてのリソース] を選択します。

  3. ご利用の Device Provisioning Service を選択します。

  4. [設定] メニューで [登録の管理] を選択します。

  5. [個別の登録] タブを選択します。

  6. このクイックスタートで登録したデバイスの登録 ID の横にあるチェック ボックスをオンにします。

  7. ページの上部で、[削除] を選択します。

IoT Hub からデバイスの登録を削除する

  1. Azure portal の左側のメニューから、 [すべてのリソース] を選択します。

  2. IoT ハブを選択します。

  3. [エクスプローラー] メニューで、 [IoT デバイス] を選択します。

  4. このクイックスタートで登録したデバイスのデバイス ID の横にあるチェック ボックスをオンにします。

  5. ページの上部で、[削除] を選択します。

次のステップ

このクイック スタートでは、個別登録を使用して 1 つのデバイスを IoT ハブにプロビジョニングしました。 次に、複数のハブ間で複数のデバイスをプロビジョニングする方法について説明します。