Поделиться через


Краткое руководство. Создание и подготовка к работе имитированного устройства доверенного платформенного модуля

В этом кратком руководстве вы создадите имитированное устройство на компьютере с Windows. Имитированное устройство настроено для использования механизма аттестации доверенного платформенного модуля (TPM) для проверки подлинности. После настройки устройства вы подготовите его к центру Интернета вещей с помощью службы подготовки устройств Центр Интернета вещей Azure. Затем пример кода используется для регистрации устройства с помощью экземпляра сервиса предоставления устройств.

Если вы не знакомы с процессом подготовки, см. раздел Процесс подготовки. Кроме того, перед продолжением выполните действия, описанные в кратком руководстве. Настройте службу подготовки устройств Центра Интернета вещей с помощью портала Azure .

Служба подготовки устройств Интернета вещей Azure поддерживает два типа регистрации:

В этой статье описана индивидуальная регистрация.

Аттестация доверенного платформенного модуля (TPM) не поддерживается в пакете SDK для Python. С помощью Python можно подготовить устройство с помощью симметричного ключа или сертификатов X.509.

Необходимые компоненты

Приведенные ниже предварительные требования касаются среды разработки Windows. При использовании Linux или macOS ознакомьтесь с соответствующим разделом в статье Подготовка среды разработки из документации к пакету SDK.

  • Модуль безопасности оборудования TPM 2.0 на компьютере под управлением Windows.

  • Установите пакет SDK для .NET Core 6.0 или более поздней версии на компьютере под управлением Windows. Вы можете проверить установленную версию с помощью приведенной ниже команды.

    dotnet --info
    
  • Установите последнюю версию Git. Обязательно добавьте GIT в переменные среды, доступные в командном окне. Последнюю версию средств для установки, которая включает git (приложение командной строки для взаимодействия с локальным репозиторием GIT), можно найти на этой странице.

Подготовка среды разработки

В этом разделе вы готовите среду разработки, используемую для создания Azure IoT C SDK и примера устройства симулятора TPM.

  1. Скачайте последнюю версию системы сборки CMake.

    Внимание

    Перед установкой CMake важно установить на компьютер необходимые компоненты Visual Studio (Visual Studio и рабочую нагрузку "Разработка классических приложений на C++"). После установки компонентов и проверки загрузки установите систему сборки CMake. Кроме того, старые версии системы сборки CMake не могут создать файл решения, используемый в этой статье. Обязательно используйте последнюю версию CMake.

  2. Откройте веб-браузер и перейдите на страницу выпусков пакета SDK Интернета вещей Azure для C.

  3. Выберите вкладку Теги в верхней части страницы.

  4. Скопируйте имя тега для последнего выпуска пакета SDK Интернета вещей Azure для C.

  5. Откройте командную строку или оболочку Git Bash. Выполните следующие команды, чтобы клонировать последний выпуск пакета SDK для устройств Интернета вещей Azure для репозитория GitHub. Замените <release-tag> тегом, скопированным на предыдущем шаге, например: lts_03_2025

    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. Клонируйте репозиторий GitHub с Azure IoT SDK для .NET с помощью следующей команды:

    git clone https://github.com/Azure/azure-iot-sdk-csharp.git
    
  1. Откройте среду командной строки Git CMD или Git Bash.

  2. Клонируйте репозиторий GitHub azure-utpm-c с помощью следующей команды:

    git clone https://github.com/Azure/azure-utpm-c.git --recursive
    
  1. Откройте среду командной строки Git CMD или Git Bash.

  2. Клонируйте репозиторий GitHub Java с помощью следующей команды:

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

Создание и запуск симулятора устройства доверенного платформенного модуля

В этом разделе вы создадите и запустите симулятор TPM. Симулятор ожидает передачи данных через сокет на портах 2321 и 2322. Не закрывайте командное окно. Вы должны поддерживать работу этого симулятора до конца этого краткого руководства.

  1. Выполните приведенную ниже команду, чтобы создать пакет SDK Интернета вещей Azure для C, включающий пример кода симулятора устройства доверенного платформенного модуля. Эта команда также создает решение Visual Studio для имитированного устройства в каталоге cmake. Этот пример содержит механизм аттестации доверенного платформенного модуля с помощью проверки подлинности по маркерам подписанного URL-адреса (SAS).

    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
    

    Симулятор не отображает никаких выходных данных. Пусть продолжает выполнять имитацию устройства доверенного платформенного модуля.

  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. Установите все необходимые пакеты, выполнив следующую команду в командной строке в папке registereddevice:

    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-http или azure-iot-provisioning-device-amqp

    • Клиент для использования клиента транспорта и безопасности: azure-iot-provisioning-device

    • Клиент устройства: azure-iot-device

    • Транспорт: любой из azure-iot-device-amqp, azure-iot-device-mqttили azure-iot-device-http

    • Клиент безопасности, который вы уже установили: azure-iot-security-tpm

      Примечание.

      Примеры в этом кратком руководстве используют транспортировки azure-iot-provisioning-device-http и azure-iot-device-mqtt.

  6. Откройте текстовый редактор по своему усмотрению.

  7. Создайте файл ExtractDevice.js в папке registerdevice.

  8. Добавьте следующие инструкции require в начало файла ExtractDevice.js:

    
    '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.

  3. Откройте второе окно командной строки.

  4. Во втором окне командной строки перейдите к корневой папке и создайте зависимости для примера.

    cd azure-iot-sdk-java
    mvn install -DskipTests=true
    
  5. Перейдите к папке с примерами.

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

Чтение криптографических ключей из устройства доверенного платформенного модуля

В этом разделе вы создадите и выполните пример, который считывает ключ подтверждения и идентификатор регистрации из симулятора TPM, который вы оставили запущенным, и по-прежнему прослушивает порты 2321 и 2322. Эти значения используются для регистрации устройств в вашем экземпляре Device Provisioning Service.

  1. Запустите Visual Studio.

  2. Откройте решение , созданное в папке azure_iot_sdks.sln.

  3. В меню Visual Studio выберите Построить>Построить решение для создания всех проектов в решении.

  4. В окне Обозреватель решений Visual Studio перейдите в папку Provision_Tools. Щелкните проект tpm_device_provision правой кнопкой мыши и выберите параметр Назначить запускаемым проектом.

  5. В меню Visual Studio выберите Отладка>Запуск без отладки, чтобы запустить решение. Приложение считывает и отображает идентификатор регистрации и ключ подтверждения. Запишите или скопируйте эти значения. Эти значения используются в следующем разделе для регистрации устройств.

  1. Войдите на портал Azure, нажмите кнопку Все ресурсы в меню слева и откройте ваш экземпляр службы подготовки устройств. Запишите значения области идентификатора и глобальных конечных точек устройства .

    Снимок экрана: страница обзора службы подготовки устройств на портале Azure.

  2. Измените src/main/java/samples/com/microsoft/azure/sdk/iot/ProvisioningTpmSample.java, добавив значения параметров Область идентификатора и Provisioning Service Global Endpoint (Глобальная конечная точка службы подготовки), как было указано ранее.

    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-файл (замените {version} вашей версией Java):

    mvn clean install
    cd target
    java -jar ./provisioning-tpm-sample-{version}-with-deps.jar
    
  5. При запуске программы отображается ключ подтверждения и идентификатор регистрации. Скопируйте эти значения для следующего раздела. Оставьте программу запущенной.

В этом разделе вы создадите и выполните пример, который считывает ключ подтверждения из модуля безопасности оборудования TPM 2.0. Это значение используется для подключения устройства в экземпляре Device Provisioning Service.

  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. Перейдите на вкладку "Отдельные регистрации" , а затем нажмите кнопку "Добавить отдельную регистрацию".

    Снимок экрана: параметр добавления отдельной регистрации.

  4. На странице "Регистрация и подготовка" страницы "Добавление регистрации" укажите следующие сведения, чтобы настроить сведения о регистрации:

    Поле Description
    Свидетельство Выберите доверенный модуль платформы (TPM) в качестве механизма аттестации.
    Параметры доверенного платформенного модуля (TPM) Укажите ключ подтверждения, используемый для проверки устройства для этой регистрации. Ключ подтверждения можно получить из доверенного платформенного модуля устройства.
    Идентификатор регистрации. Укажите уникальный идентификатор регистрации для устройства. Вы можете получить идентификатор регистрации из доверенного платформенного модуля устройства.
    Состояние подготовки Установите флажок "Включить эту регистрацию", если вы хотите, чтобы эта регистрация была доступна для подготовки устройства. Снимите этот флажок, если требуется отключить регистрацию. При необходимости этот параметр можно изменить позже.
    Политика повторной подготовки Выберите политику повторной подготовки, которая отражает способ обработки устройств, запрашивающих повторную подготовку. Дополнительные сведения см. в разделе "Политики повторной подготовки".
  5. Нажмите кнопку Далее: Центры Интернета вещей.

  6. На вкладке Центров Интернета вещей на странице "Добавление регистрации" укажите следующие сведения, чтобы определить, какие центры Интернета вещей могут подготавливать устройства для:

    Поле Description
    Целевые центры Интернета вещей Выберите один или несколько связанных центров Интернета вещей или добавьте новую ссылку на Центр Интернета вещей. Дополнительные сведения о связывании центров Интернета вещей с экземпляром DPS см. в статье "Как связать центры Интернета вещей и управлять ими".
    Политика выделения Если выбрано несколько связанных центров Интернета вещей, выберите способ назначения устройств разным центрам. Дополнительные сведения о политиках выделения см. в статье "Использование политик выделения".

    Если выбран только один связанный центр Интернета вещей, рекомендуется использовать политику равномерного распределения .
  7. Нажмите кнопку "Далее": параметры устройства

  8. На вкладке "Параметры устройства " на странице "Добавление регистрации " укажите следующие сведения, чтобы определить, как настроены недавно подготовленные устройства:

    Поле Description
    Идентификатор устройства Укажите идентификатор устройства, назначенный подготовленному устройству в Центре Интернета вещей. Если идентификатор устройства не указан, используется идентификатор регистрации.
    IoT Edge Проверьте включение IoT Edge на подготовленных устройствах , если подготовленное устройство запускает Azure IoT Edge. Снимите этот флажок, если эта регистрация используется для устройства с поддержкой IoT Edge.
    Теги устройств Используйте это текстовое поле для предоставления тегов, которые необходимо применить к двойнику устройства подготовленного устройства.
    Требуемые свойства Используйте это текстовое поле для предоставления необходимых свойств, которые необходимо применить к двойнику устройства подготовленного устройства.

    См. общие сведения о двойниках устройств и их использовании в Центре Интернета вещей.

  9. По завершении выберите Next: Отзыв и создание.

  10. На вкладке "Просмотр и создание " проверьте все значения и нажмите кнопку "Создать".

Пример доверенного платформенного модуля C# для этого краткого руководства не предоставляет идентификатор регистрации. При появлении запроса на добавление одного для отдельной регистрации укажите собственное значение.

  1. Войдите на портал Azure и перейдите к своему экземпляру службы подготовки устройств.

  2. Выберите " Управление регистрациями" в разделе "Параметры " в меню навигации.

  3. Перейдите на вкладку "Отдельные регистрации" , а затем нажмите кнопку "Добавить отдельную регистрацию".

    Снимок экрана: параметр добавления отдельной регистрации.

  4. На странице "Регистрация и подготовка" страницы "Добавление регистрации" укажите следующие сведения, чтобы настроить сведения о регистрации:

    Поле Description
    Свидетельство Выберите доверенный модуль платформы (TPM) в качестве механизма аттестации.
    Параметры доверенного платформенного модуля (TPM) Укажите ключ подтверждения, используемый для проверки устройства для этой регистрации. Ключ подтверждения можно получить из доверенного платформенного модуля устройства.
    Идентификатор регистрации. Укажите уникальный идентификатор регистрации для устройства. Вы можете получить идентификатор регистрации из доверенного платформенного модуля устройства.
    Состояние подготовки Установите флажок "Включить эту регистрацию", если вы хотите, чтобы эта регистрация была доступна для подготовки устройства. Снимите этот флажок, если требуется отключить регистрацию. При необходимости этот параметр можно изменить позже.
    Политика повторной подготовки Выберите политику повторной подготовки, которая отражает способ обработки устройств, запрашивающих повторную подготовку. Дополнительные сведения см. в разделе "Политики повторной подготовки".
  5. Нажмите кнопку Далее: Центры Интернета вещей.

  6. На вкладке Центров Интернета вещей на странице "Добавление регистрации" укажите следующие сведения, чтобы определить, какие центры Интернета вещей могут подготавливать устройства для:

    Поле Description
    Целевые центры Интернета вещей Выберите один или несколько связанных центров Интернета вещей или добавьте новую ссылку на Центр Интернета вещей. Дополнительные сведения о связывании центров Интернета вещей с экземпляром DPS см. в статье "Как связать центры Интернета вещей и управлять ими".
    Политика выделения Если выбрано несколько связанных центров Интернета вещей, выберите способ назначения устройств разным центрам. Дополнительные сведения о политиках выделения см. в статье "Использование политик выделения".

    Если выбран только один связанный центр Интернета вещей, рекомендуется использовать политику равномерного распределения .
  7. Нажмите кнопку "Далее": параметры устройства

  8. На вкладке "Параметры устройства " на странице "Добавление регистрации " укажите следующие сведения, чтобы определить, как настроены недавно подготовленные устройства:

    Поле Description
    Идентификатор устройства Укажите идентификатор устройства, назначенный подготовленному устройству в Центре Интернета вещей. Если идентификатор устройства не указан, используется идентификатор регистрации.
    IoT Edge Проверьте включение IoT Edge на подготовленных устройствах , если подготовленное устройство запускает Azure IoT Edge. Снимите этот флажок, если эта регистрация используется для устройства с поддержкой IoT Edge.
    Теги устройств Используйте это текстовое поле для предоставления тегов, которые необходимо применить к двойнику устройства подготовленного устройства.
    Требуемые свойства Используйте это текстовое поле для предоставления необходимых свойств, которые необходимо применить к двойнику устройства подготовленного устройства.

    См. общие сведения о двойниках устройств и их использовании в Центре Интернета вещей.

  9. По завершении выберите Next: Отзыв и создание.

  10. На вкладке "Просмотр и создание " проверьте все значения и нажмите кнопку "Создать".

Регистрация устройства

В этом разделе вы настроите пример кода для использования расширенного протокола очереди сообщений (AMQP) для отправки последовательности загрузки устройства в экземпляр службы подготовки устройств. Эта последовательность загрузки обеспечит регистрацию устройства в Центре Интернета вещей, связанном с экземпляром Службы подготовки устройств.

  1. На портале Azure перейдите на вкладку «Обзор» для экземпляра службы инициализации устройств.

  2. Скопируйте значение параметра Область идентификатора.

    Снимок экрана: значение области идентификатора на странице обзора службы подготовки устройств на портале.

  3. В окне Обозреватель решений Visual Studio перейдите в папку Provision_Samples. Разверните пример проекта с именем prov_dev_client_sample. Разверните исходные файлы и откройте prov_dev_client_sample.c.

  4. В верхней части файла найдите #define инструкции для каждого протокола устройства, как показано в следующем примере. Убедитесь, что раскомментирован только параметр SAMPLE_AMQP.

    В настоящее время протокол 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 выберите Отладка>Запуск без отладки, чтобы запустить решение. При появлении запроса перестроить проект щелкните Да, чтобы перестроить его перед запуском.

    Следующий результат является примером успешной загрузки примера клиента устройства подготовки и подключения к экземпляру службы подготовки устройств для получения сведений о Центре Интернета вещей и регистрации:

    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. Скопируйте значение параметра Область идентификатора.

    Снимок экрана, показывающий копирование идентификатора области службы подготовки из портала.

  3. В окне командной строки замените каталоги на каталог проекта в примере подготовки устройства TPM.

     cd '.\azure-iot-sdk-csharp\provisioning\device\samples\how to guides\TpmSample\'
    
  4. Выполните следующую команду, чтобы зарегистрировать устройство. Замените <IdScope> значением, скопированным DPS, и <RegistrationId> значением, которое вы использовали при создании регистрации устройства.

    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. Скопируйте значение параметра Область идентификатора.

    Снимок экрана, показывающий копирование сведений о конечной точке службы подготовки устройств из портала.

  3. Откройте текстовый редактор по своему усмотрению.

  4. Создайте файл RegisterDevice.js в папке registerdevice.

  5. Добавьте следующие инструкции require в начало файла RegisterDevice.js:

    
    '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;
    

    Примечание.

    Пакет SDK Для Интернета вещей Azure для Node.js поддерживает другие протоколы, такие как AMQP,AMQP WS и MQTT WS. Дополнительные примеры на Node.js см. в разделе для пакета SDK службы подготовки устройств.

  6. Добавьте переменные globalDeviceEndpoint и idScope и используйте их для создания экземпляра 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. Обратите внимание на сообщения, которые имитируют загрузку устройства и его подключение к службе подготовки устройств для получения информации Центра Интернета вещей.

  1. В окне командной строки, в котором выполняется пример кода Java на компьютере, нажмите клавишу ВВОД, чтобы приложение продолжило работу. Обратите внимание на сообщения, которые имитируют загрузку устройства и его подключение к службе подготовки устройств для получения информации Центра Интернета вещей.

    Снимок экрана окна командной строки с выходными данными из примера кода Java.

Проверка регистрации подготовки устройств

  1. Войдите на портал Azure.

  2. В меню слева на портале нажмите Все ресурсы.

  3. Выберите центр Интернета вещей, которому назначено устройство.

  4. В разделе "Управление устройствами" выберите "Устройства".

  5. Если устройство успешно подготовлено, его идентификатор должен появиться в списке и параметр Состояние будет иметь значение Включено. Если устройство не отображается, выберите "Обновить " в верхней части панели.

    Снимок экрана: подготовленное устройство зарегистрировано в Центре Интернета вещей.

Примечание.

Если в записи регистрации для своего устройства вы изменили значение по умолчанию для начального состояния двойника устройства, требуемое состояние двойника будет извлечено из концентратора с последующим выполнением соответствующих действий. См. общие сведения о двойниках устройств и их использовании в Центре Интернета вещей.

Очистка ресурсов

Если вы планируете продолжить работу с примером клиентского устройства, не удаляйте ресурсы, созданные в ходе работы с этим кратким руководством. Если вы не планируете продолжать работу, следуйте инструкциям ниже, чтобы удалить все созданные ресурсы.

Удаление регистрации устройства

  1. Закройте окно выходных данных примера клиентского устройства на компьютере.

  2. В меню портала Azure выберите все ресурсы.

  3. Выберите экземпляр службы Device Provisioning Service.

  4. В меню службы в разделе "Параметры" выберите "Управление регистрацией".

  5. На рабочей панели выберите вкладку "Отдельные регистрации ".

  6. Установите флажок рядом с идентификатором регистрации устройства, зарегистрированного в этом кратком руководстве.

  7. В области вверху выберите Удалить.

Удаление регистрации устройства из Центра Интернета вещей

  1. В меню портала Azure выберите все ресурсы.

  2. Выберите нужный Центр Интернета вещей.

  3. В меню службы в разделе "Управление устройствами" выберите "Устройства".

  4. Установите флажок рядом с идентификатором устройства, зарегистрированного в этом кратком руководстве.

  5. В области вверху выберите Удалить.

Следующие шаги

В этом кратком руководстве вы подготовили одно устройство в Центре Интернета вещей с помощью отдельной регистрации. Далее вы узнаете, как подготовить несколько устройств в нескольких центрах.