快速入門:布建模擬 TPM 裝置

在本快速入門中,您將在 Windows 電腦上建立模擬裝置。 模擬裝置會設定為使用 受信任的平臺模組 (TPM) 證明 機制進行驗證。 設定裝置之後,您將使用 Azure IoT 中樞 裝置布建服務將它布建至IoT中樞。 然後,範例程式代碼將用來協助向裝置布建服務實例註冊裝置。

如果您不熟悉布建程式,請檢閱布 建概 觀。 此外,請確定您已完成使用 Azure 入口網站 設定 IoT 中樞 裝置布建服務中的步驟,再繼續進行。

Azure IoT 裝置布建服務支援兩種類型的註冊:

本文示範個別註冊。

Python SDK 不支援信任的平臺模組 (TPM) 證明。 使用 Python,您可以使用對稱金鑰或 X.509 憑證來佈建裝置

必要條件

下列必要條件適用於 Windows 開發環境。 針對 Linux 或 macOS,請參閱 SDK 檔中準備開發環境的適當章節

  • Windows 電腦上 TPM 2.0 硬體安全性模組。

  • 在 Windows 電腦上安裝 .NET Core SDK 6.0 或更新版本。 您可以使用下列命令來檢查您的版本。

    dotnet --info
    
  • 安裝最新版本的 Git。 請確定 Git 已新增至命令視窗可存取的環境變數。 請參閱 Software Freedom Conservancy 的 Git 用戶端工具 ,以取得要安裝之最新版 git 的工具,其中包括 Git Bash,您可以用來與本機 Git 存放庫互動的命令行應用程式。

準備您的開發環境

在本節中,您將準備用來建置 Azure IoT C SDK 和 TPM 裝置模擬器範例的開發環境。

  1. 下載最新的 CMake 組建系統

    重要

    在開始CMake安裝之前請先確認已安裝Visual Studio必要條件(Visual Studio和「使用 C++進行桌面開發」工作負載。 一旦必要條件就緒,並確認下載后,請安裝 CMake 建置系統。 此外,請注意,舊版的 CMake 建置系統無法產生本文中使用的解決方案檔案。 請務必使用最新版本的 CMake。

  2. 開啟網頁瀏覽器,然後移至 Azure IoT C SDK 的 [發行] 頁面。

  3. 選取頁面頂端的 [ 卷標 ] 索引標籤。

  4. 複製最新版 Azure IoT C SDK 的標籤名稱。

  5. 開啟命令提示字元或 Git Bash 殼層。 執行下列命令來複製最新版的 Azure IoT 裝置 SDK for C 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
    
  1. 開啟 Git CMD 或 Git Bash 命令行環境。

  2. 使用下列命令複製 適用於 C# 的 Azure IoT SDK GitHub 存放庫:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. 開啟 Git CMD 或 Git Bash 命令行環境。

  2. 使用下列命令複製 azure-utpm-c GitHub 存放庫:

    git clone https://github.com/Azure/azure-utpm-c.git --recursive
    
  1. 開啟 Git CMD 或 Git Bash 命令行環境。

  2. 使用下列命令複製 Java GitHub 存放庫:

    git clone https://github.com/Azure/azure-iot-sdk-java.git --recursive
    

建置並執行 TPM 裝置模擬器

在本節中,您將建置並執行 TPM 模擬器。 此模擬器會接聽埠 2321 和 2322 上的套接字。 請勿關閉命令視窗。 您必須讓此模擬器持續執行,直到本快速入門結束為止。

  1. 執行下列命令來建置包含 TPM 裝置模擬器範例程式代碼的 Azure IoT C SDK。 模擬裝置的 Visual Studio 解決方案會在 目錄中產生 cmake 。 此範例會透過共用存取簽章 (SAS) 令牌驗證來提供 TPM 證明機制

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

    提示

    如果 cmake 找不到您的 C++ 編譯程式,您可以在執行上述命令時收到建置錯誤。 如果發生這種情況,請嘗試在 Visual Studio 命令提示字元執行命令。

  2. 建置成功時,最後幾個輸出行看起來會類似下列輸出:

    $ cmake -Duse_prov_client:BOOL=ON ..
    -- Building for: Visual Studio 16 2019
    -- The C compiler identification is MSVC 19.23.28107.0
    -- The CXX compiler identification is MSVC 19.23.28107.0
    
    ...
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/code/azure-iot-sdk-c/cmake
    
  3. 移至您複製之 Git 存放庫的根資料夾。

  4. 使用如下所示的路徑執行 TPM 模擬器。

    cd ..
    .\provisioning_client\deps\utpm\tools\tpm_simulator\Simulator.exe
    

    模擬器不會顯示任何輸出。 讓它在模擬 TPM 裝置時繼續執行。

  1. 移至 GitHub 根資料夾。

  2. 執行 TPM 模擬器以做 為模擬裝置的 HSM

    .\azure-utpm-c\tools\tpm_simulator\Simulator.exe
    
  3. 建立名為 registerdevice 的新空白資料夾。 在 registerdevice 資料夾中,在命令提示字元中使用下列命令建立 package.json 檔案(請務必回答所有詢問 npm 的問題,或接受預設值,如果他們適合您):

    npm init
    
  4. 安裝下列前導套件:

    npm install node-gyp -g
    npm install ffi-napi -g
    

    注意

    安裝上述套件有一些已知問題。 若要解決這些問題,npm install --global --production windows-build-tools請在以系統管理員身分執行模式中的命令提示字元執行、以已安裝的版本取代路徑之後執行SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140,然後重新執行上述安裝命令。

  5. 在 registerdevice 資料夾中的指令提示字元安裝執行下列命令的所有必要套件:

    npm install --save azure-iot-device azure-iot-device-mqtt azure-iot-security-tpm azure-iot-provisioning-device-http azure-iot-provisioning-device
    

    命令會安裝下列套件:

    • 與 TPM 搭配運作的安全性用戶端: azure-iot-security-tpm

    • 要連線到裝置布建服務的裝置傳輸: azure-iot-provisioning-device-httpazure-iot-provisioning-device-amqp

    • 使用傳輸和安全性客戶端的用戶端: azure-iot-provisioning-device

    • 裝置用戶端: azure-iot-device

    • 傳輸:任何 azure-iot-device-amqpazure-iot-device-mqttazure-iot-device-http

    • 您已安裝的安全性用戶端: azure-iot-security-tpm

      注意

      本快速入門中的範例會使用 azure-iot-provisioning-device-httpazure-iot-device-mqtt 傳輸。

  6. 開啟您選擇的文字編輯器。

  7. registerdevice 資料夾中,建立新的 ExtractDevice.js 檔案。

  8. 在ExtractDevice.js檔案開頭新增下列require語句:

    
    'use strict';
    
    var tpmSecurity = require('azure-iot-security-tpm');
    var tssJs = require("tss.js");
    
    var myTpm = new tpmSecurity.TpmSecurityClient(undefined, new tssJs.Tpm(true));
    
  9. 新增下列函式以實作 方法:

    
    myTpm.getEndorsementKey(function(err, endorsementKey) {
      if (err) {
        console.log('The error returned from get key is: ' + err);
      } else {
        console.log('the endorsement key is: ' + endorsementKey.toString('base64'));
        myTpm.getRegistrationId((getRegistrationIdError, registrationId) => {
          if (getRegistrationIdError) {
            console.log('The error returned from get registration id is: ' + getRegistrationIdError);
          } else {
            console.log('The Registration Id is: ' + registrationId);
            process.exit();
          }
        });
      }
    });
    
  10. 儲存並關閉 ExtractDevice.js 檔案。

    node ExtractDevice.js
    
  11. 執行範例。

  12. 輸出視窗會顯示裝置註冊所需的簽署金鑰註冊識別碼 複製這些值。

  1. 執行 TPM 模擬器以做 為模擬裝置的 HSM

  2. 選取 [ 允許存取]。 模擬器會接聽埠 2321 和 2322 上的套接字。 請勿關閉此命令視窗;您必須讓此模擬器保持執行,直到本快速入門指南結束為止。

    .\azure-iot-sdk-java\provisioning\provisioning-tools\tpm-simulator\Simulator.exe
    

    TPM Simulator

  3. 開啟第二個命令提示字元。

  4. 在第二個命令提示字元中,流覽至根資料夾並建置範例相依性。

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    
  5. 巡覽至範例資料夾。

    cd provisioning/provisioning-samples/provisioning-tpm-sample
    

從 TPM 裝置讀取密碼編譯金鑰

在本節中,您將建置和執行範例,以從您離開的 TPM 模擬器讀取簽署密鑰和註冊標識碼,而且仍在接聽埠 2321 和 2322。 這些值將用於裝置註冊與裝置布建服務實例。

  1. 啟動 Visual Studio。

  2. 開啟名為 azure_iot_sdks.slncmake 資料夾中產生的方案。

  3. 在 Visual Studio 功能表上,選取 [>置建置方案] 以建置方案中的所有專案。

  4. 在 Visual Studio 的 [方案總管] 視窗中,流覽至 [Provision_Tools] 資料夾。 以 滑鼠右鍵按兩下tpm_device_provision 專案,然後選取 [ 設定為啟始專案]。

  5. 在 Visual Studio 選單上,選取 [偵錯>開始但不偵錯] 以執行解決方案。 應用程式會讀取並顯示註冊標識碼簽署金鑰 請注意或複製這些值。 這些將會在下一節中用於裝置註冊。

  1. 登入 Azure 入口網站,選取左側功能表上的 [所有資源] 按鈕,然後開啟您的裝置布建服務。 記下您的標識碼 範圍布建服務全域端點

    Device Provisioning Service information

  2. 編輯 src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java 以包含您的標識碼 範圍布建服務全域端點 ,如先前所述。

    private static final String idScope = "[Your ID scope here]";
    private static final String globalEndpoint = "[Your Provisioning Service Global Endpoint here]";
    private static final ProvisioningDeviceClientTransportProtocol PROVISIONING_DEVICE_CLIENT_TRANSPORT_PROTOCOL = ProvisioningDeviceClientTransportProtocol.HTTPS;
    
  3. 儲存檔案。

  4. 使用下列命令來建置專案、流覽至目標資料夾,然後執行已建立的.jar檔案(以您的 Java 版本取代 {version}):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. 當程式開始執行時,它會顯示簽署金鑰註冊識別碼。 複製下一節的這些值。 請務必讓程式保持執行狀態。

在本節中,您將建置和執行範例,以從 TPM 2.0 硬體安全性模塊讀取簽署密鑰。 此值將用於裝置註冊與裝置布建服務實例。

  1. 在命令提示字元中,將目錄變更為 TPM 裝置佈建範例的項目目錄。

    cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  2. 輸入下列命令,以建置並執行 TPM 裝置佈建範例。 複製從 TPM 2.0 硬體安全性模組傳回的簽署金鑰,以在註冊裝置時稍後使用。

    dotnet run -- -e
    

建立裝置註冊專案

  1. 登入 Azure 入口網站,並流覽至您的裝置布建服務實例。

  2. 從導覽功能表的 [設定] 區段中選取 [管理註冊]。

  3. 選取 [ 個別註冊] 索引 標籤,然後選取 [ 新增個別註冊]。

    Screenshot that shows the add individual enrollment option.

  4. 在 [新增註冊] 頁面的 [註冊 + 布建] 上,提供下列信息來設定註冊詳細數據:

    欄位 描述
    認證 選取 [信任平台模組](TPM) 作為 證明機制
    信任的平台模組 (TPM) 設定 提供用於驗證此註冊裝置的簽署金鑰。 您可以從裝置的 TPM 擷取簽署金鑰。
    註冊識別碼 提供裝置的唯一註冊標識碼。 您可以從裝置的 TPM 擷取註冊標識碼。
    布建狀態 如果您想要讓此註冊可供布建其裝置,請核取 [ 啟用此註冊 ] 方塊。 如果您想要停用註冊,請取消核取此方塊。 您可以稍後變更此設定。
    重新布建原則 選擇重新布建原則,以反映您希望 DPS 如何處理要求重新布建的裝置。 如需詳細資訊,請參閱 重新布建原則
  5. 選取 [ 下一步:IoT 中樞]。

  6. 在 [新增註冊] 頁面的 [IoT 中樞] 索引卷標上,提供下列資訊來判斷註冊可以布建裝置的 IoT 中樞:

    欄位 描述
    目標IoT中樞 選取一或多個連結的IoT中樞,或將新連結新增至IoT中樞。 若要深入瞭解如何將IoT中樞連結至 DPS 實例,請參閱 如何連結和管理IoT中樞。
    配置原則 如果您選取了多個連結的IoT中樞,請選取要將裝置指派給不同中樞的方式。 若要深入瞭解配置原則,請參閱 如何使用配置原則

    如果您只選取一個連結的IoT中樞,建議您使用 平均加權散發 原則。
  7. 選取 [下一步:裝置設定]

  8. 在 [新增註冊] 頁面的 [裝置設定] 索引標籤上,提供下列資訊來定義新布建裝置的設定方式:

    欄位 描述
    裝置識別碼 提供將在 IoT 中樞 中指派給布建裝置的裝置標識碼。 如果您沒有提供裝置識別碼,將會使用註冊標識碼。
    IoT Edge 如果布建的裝置將執行 Azure IoT Edge,請檢查布建裝置上的啟用 IoT Edge。 如果此註冊適用於未啟用IoT Edge的裝置,請取消核取此方塊。
    裝置標籤 使用此文字框提供您想要套用至所布建裝置裝置對應項的任何標籤。
    所需的屬性 使用此文字框提供您想要套用至已布建裝置之裝置對應項的任何所需屬性。

    如需詳細資訊,請參閱瞭解和使用 IoT 中樞 中的裝置對應項。

  9. 完成時,選取 [下一步:檢閱 + 建立]。

  10. 在 [ 檢閱 + 建立] 索引標籤上,確認您的所有值,然後選取 [ 建立]。

本快速入門的 C# TPM 範例不提供註冊標識碼。 當系統提示您為個別註冊新增一個時,請提供您自己的值。

  1. 登入 Azure 入口網站 並流覽至您的裝置布建服務實例。

  2. 導覽功能表的 [設定] 區段中選取 [管理註冊]。

  3. 選取 [ 個別註冊] 索引 標籤,然後選取 [ 新增個別註冊]。

    Screenshot that shows the add individual enrollment option.

  4. 在 [新增註冊] 頁面的 [註冊 + 布建] 上,提供下列信息來設定註冊詳細數據:

    欄位 描述
    認證 選取 [信任平台模組](TPM) 作為 證明機制
    信任的平台模組 (TPM) 設定 提供用於驗證此註冊裝置的簽署金鑰。 您可以從裝置的 TPM 擷取簽署金鑰。
    註冊識別碼 提供裝置的唯一註冊標識碼。 您可以從裝置的 TPM 擷取註冊標識碼。
    布建狀態 如果您想要讓此註冊可供布建其裝置,請核取 [ 啟用此註冊 ] 方塊。 如果您想要停用註冊,請取消核取此方塊。 您可以稍後變更此設定。
    重新布建原則 選擇重新布建原則,以反映您希望 DPS 如何處理要求重新布建的裝置。 如需詳細資訊,請參閱 重新布建原則
  5. 選取 [ 下一步:IoT 中樞]。

  6. 在 [新增註冊] 頁面的 [IoT 中樞] 索引卷標上,提供下列資訊來判斷註冊可以布建裝置的 IoT 中樞:

    欄位 描述
    目標IoT中樞 選取一或多個連結的IoT中樞,或將新連結新增至IoT中樞。 若要深入瞭解如何將IoT中樞連結至 DPS 實例,請參閱 如何連結和管理IoT中樞。
    配置原則 如果您選取了多個連結的IoT中樞,請選取要將裝置指派給不同中樞的方式。 若要深入瞭解配置原則,請參閱 如何使用配置原則

    如果您只選取一個連結的IoT中樞,建議您使用 平均加權散發 原則。
  7. 選取 [下一步:裝置設定]

  8. 在 [新增註冊] 頁面的 [裝置設定] 索引標籤上,提供下列資訊來定義新布建裝置的設定方式:

    欄位 描述
    裝置識別碼 提供將在 IoT 中樞 中指派給布建裝置的裝置標識碼。 如果您沒有提供裝置識別碼,將會使用註冊標識碼。
    IoT Edge 如果布建的裝置將執行 Azure IoT Edge,請檢查布建裝置上的啟用 IoT Edge。 如果此註冊適用於未啟用IoT Edge的裝置,請取消核取此方塊。
    裝置標籤 使用此文字框提供您想要套用至所布建裝置裝置對應項的任何標籤。
    所需的屬性 使用此文字框提供您想要套用至已布建裝置之裝置對應項的任何所需屬性。

    如需詳細資訊,請參閱瞭解和使用 IoT 中樞 中的裝置對應項。

  9. 完成時,選取 [下一步:檢閱 + 建立]。

  10. 在 [ 檢閱 + 建立] 索引標籤上,確認您的所有值,然後選取 [ 建立]。

註冊裝置

在本節中,您將設定範例程式代碼,以使用進 階消息佇列通訊協定 (AMQP) 將裝置的開機順序傳送至裝置布建服務實例。 此開機順序會導致裝置註冊到連結至裝置布建服務實例的IoT中樞。

  1. 在 Azure 入口網站 中,選取裝置布建服務的 [概觀] 索引標籤。

  2. 複製 [ 標識符範圍] 值。

    Extract Device Provisioning Service endpoint information from the portal

  3. 在 Visual Studio 的 [方案總管] 視窗中,流覽至 [Provision_Samples] 資料夾。 展開名為 prov_dev_client_sample 的範例專案。 展開 [原始程序檔],然後開啟 [prov_dev_client_sample.c]。

  4. 在檔案頂端附近,尋找 #define 每個裝置通訊協議的 語句,如下所示。 請確定只有 SAMPLE_AMQP 未批注。

    目前 TPM 個別註冊不支援 MQTT 通訊協定。

    //
    // The protocol you wish to use should be uncommented
    //
    //#define SAMPLE_MQTT
    //#define SAMPLE_MQTT_OVER_WEBSOCKETS
    #define SAMPLE_AMQP
    //#define SAMPLE_AMQP_OVER_WEBSOCKETS
    //#define SAMPLE_HTTP
    
  5. id_scope尋找常數,並將值取代為您稍早複製的標識符範圍值。

    static const char* id_scope = "0ne00002193";
    
  6. 在相同的檔案中尋找函式的定義 main() 。 請確定 hsm_type 變數已設定為 , SECURE_DEVICE_TYPE_TPM 如下所示。

    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 專案,然後選取 [ 設定為啟始專案]。

  8. 在 Visual Studio 選單上,選取 [偵錯>開始但不偵錯] 以執行解決方案。 在重建專案的提示中,選取 [ ],在執行之前重建專案。

    下列輸出是布建裝置用戶端範例成功開機的範例,並聯機到裝置布建服務實例以取得IoT中樞資訊和註冊:

    Provisioning API Version: 1.2.7
    
    Registering... Press enter key to interrupt.
    
    Provisioning Status: PROV_DEVICE_REG_STATUS_CONNECTED
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    Provisioning Status: PROV_DEVICE_REG_STATUS_ASSIGNING
    
    Registration Information received from service:
    test-docs-hub.azure-devices.net, deviceId: test-docs-cert-device
    
  1. 在 Azure 入口網站 中,選取裝置布建服務的 [概觀] 索引標籤。

  2. 複製 [ 標識符範圍] 值。

    Copy provisioning service Scope ID from the portal blade

  3. 在命令提示字元中,將目錄變更為 TPM 裝置佈建範例的項目目錄。

     cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  4. 執行下列命令來註冊您的裝置。 將 取代為您複製的 DPS 值,並將 <RegistrationId> 取代<IdScope>為您建立裝置註冊時所使用的值。

    dotnet run -- -s <IdScope> -r <RegistrationId>
    

    如果裝置註冊成功,您會看到下列訊息:

    Initializing security using the local TPM...
    Initializing the device provisioning client...
    Initialized for registration Id <RegistrationId>.
    Registering with the device provisioning service...
    Registration status: Assigned.
    Device <RegistrationId> registered to <HubName>.azure-devices.net.
    Creating TPM authentication for IoT Hub...
    Testing the provisioned device with IoT Hub...
    Sending a telemetry message...
    Finished.
    
  1. 在 Azure 入口網站 中,選取裝置布建服務的 [概觀] 索引標籤。

  2. 複製 [ 標識符範圍] 值。

    Extract Device Provisioning Service endpoint information from the portal blade

  3. 開啟您選擇的文字編輯器。

  4. registerdevice 資料夾中,建立新的 RegisterDevice.js 檔案。

  5. 在RegisterDevice.js檔案開頭新增下列require語句:

    
    'use strict';
    
    var ProvisioningTransport = require('azure-iot-provisioning-device-http').Http;
    var iotHubTransport = require('azure-iot-device-mqtt').Mqtt;
    var Client = require('azure-iot-device').Client;
    var Message = require('azure-iot-device').Message;
    var tpmSecurity = require('azure-iot-security-tpm');
    var ProvisioningDeviceClient = require('azure-iot-provisioning-device').ProvisioningDeviceClient;
    

    注意

    適用於 Node.js 的 Azure IoT SDK 支援其他通訊協定,例如 AMQP、AMQP WSMQTT WS 如需更多範例,請參閱 適用於Node.js範例的裝置布建服務 SDK。

  6. 新增 globalDeviceEndpointidScope 變數,並使用它們來建立 ProvisioningDeviceClient 實例。 將 {globalDeviceEndpoint} 和 {idScope} 取代為步驟 1 中的全域裝置端點標識符範圍值:

    
    var provisioningHost = '{globalDeviceEndpoint}';
    var idScope = '{idScope}';
    
    var tssJs = require("tss.js");
    var securityClient = new tpmSecurity.TpmSecurityClient('', new tssJs.Tpm(true));
    // if using non-simulated device, replace the above line with following:
    //var securityClient = new tpmSecurity.TpmSecurityClient();
    
    var provisioningClient = ProvisioningDeviceClient.create(provisioningHost, idScope, new ProvisioningTransport(), securityClient);
    
  7. 新增下列函式以在裝置上實作 方法:

    
    provisioningClient.register(function(err, result) {
      if (err) {
        console.log("error registering device: " + err);
      } else {
        console.log('registration succeeded');
        console.log('assigned hub=' + result.registrationState.assignedHub);
        console.log('deviceId=' + result.registrationState.deviceId);
        var tpmAuthenticationProvider = tpmSecurity.TpmAuthenticationProvider.fromTpmSecurityClient(result.registrationState.deviceId, result.registrationState.assignedHub, securityClient);
        var hubClient = Client.fromAuthenticationProvider(tpmAuthenticationProvider, iotHubTransport);
    
        var connectCallback = function (err) {
          if (err) {
            console.error('Could not connect: ' + err.message);
          } else {
            console.log('Client connected');
            var message = new Message('Hello world');
            hubClient.sendEvent(message, printResultFor('send'));
          }
        };
    
        hubClient.open(connectCallback);
    
        function printResultFor(op) {
          return function printResult(err, res) {
            if (err) console.log(op + ' error: ' + err.toString());
            if (res) console.log(op + ' status: ' + res.constructor.name);
            process.exit(1);
          };
        }
      }
    });
    
  8. 儲存並關閉 RegisterDevice.js 檔案。

  9. 執行以下命令:

    node RegisterDevice.js
    
  10. 請注意模擬裝置開機並連線到裝置佈建服務的訊息,以取得IoT中樞資訊。

  1. 在計算機上執行 Java 範例程式代碼的命令視窗中,按 Enter 繼續執行應用程式。 請注意模擬裝置開機並連線到裝置佈建服務的訊息,以取得IoT中樞資訊。

    Java TPM device program final

確認您的裝置布建註冊

  1. 登入 Azure 入口網站

  2. 在左側功能表或入口網站頁面上,選取 [ 所有資源]。

  3. 選取已指派裝置的IoT中樞。

  4. 在 [ 總管] 功能表中,選取 [IoT 裝置]。

  1. 如果已成功布建您的裝置,裝置標識碼應該會出現在清單中,且 狀態 設定為 已啟用。 如果您沒有看到您的裝置,請選取頁面頂端的 [ 重新 整理]。

    Device is registered with the IoT hub for C

  1. 如果已成功布建您的裝置,裝置標識碼應該會出現在清單中,且 狀態 設定為 已啟用。 如果您沒有看到您的裝置,請選取頁面頂端的 [ 重新 整理]。

    Device is registered with the IoT hub for C#

  1. 如果已成功布建您的裝置,裝置標識碼應該會出現在清單中,且 狀態 設定為 已啟用。 如果您沒有看到您的裝置,請選取頁面頂端的 [ 重新 整理]。

    Device is registered with the IoT hub for Node.js

  1. 如果已成功布建您的裝置,裝置標識碼應該會出現在清單中,且 狀態 設定為 已啟用。 如果您沒有看到您的裝置,請選取頁面頂端的 [ 重新 整理]。

    Device is registered with the IoT hub

注意

如果您從裝置註冊專案中的預設值變更 初始裝置對應項狀態 ,它可以從中樞提取所需的對應項狀態,並據以採取行動。 如需詳細資訊,請參閱瞭解和使用 IoT 中樞 中的裝置對應項。

清除資源

如果您打算繼續處理和探索裝置用戶端範例,請勿清除本快速入門中建立的資源。 如果您不打算繼續,請使用下列步驟來刪除本快速入門所建立的所有資源。

刪除您的裝置註冊

  1. 關閉您電腦上的裝置用戶端範例輸出視窗。

  2. 從 Azure 入口網站 左側功能表中,選取 [所有資源]。

  3. 選取您的裝置布建服務。

  4. [設定] 功能表中,選取 [管理註冊]。

  5. 選取 [ 個別註冊] 索引標籤

  6. 選取您在本快速入門中註冊之裝置註冊標識符旁的複選框。

  7. 在頁面頂端,選取 [刪除]

從 IoT 中樞 刪除您的裝置註冊

  1. 從 Azure 入口網站 左側功能表中,選取 [所有資源]。

  2. 選取您的IoT中樞。

  3. 在 [ 總管] 功能表中,選取 [IoT 裝置]。

  4. 選取您在本快速入門中註冊之裝置的裝置識別符旁的複選框。

  5. 在頁面頂端,選取 [刪除]

下一步

在本快速入門中,您已使用個別註冊,將單一裝置布建至IoT中樞。 接下來,瞭解如何跨多個中樞布建多個裝置。