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


Начало работы с Центр Интернета вещей удостоверениями модулей и двойниками модулей с помощью Azure CLI

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

Примечание

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

В этой статье показано, как создать сеанс Azure CLI, в котором вы:

  • Создайте удостоверение устройства, а затем — удостоверение модуля для этого устройства.

  • Обновите набор требуемых свойств двойника модуля, связанного с удостоверением модуля.

Предварительные требования

  • Azure CLI. Вы также можете выполнять команды, приведенные в этой статье, с помощью Cloud Shell Azure, интерактивной оболочки CLI, которая выполняется в браузере или в приложении, таком как Терминал Windows. При использовании Cloud Shell вам не нужно ничего устанавливать. Если вы предпочитаете использовать CLI локально, для работы с этой статьей требуется Azure CLI версии 2.36 или более поздней. Чтобы узнать версию, выполните команду az --version. Сведения о локальной установке или обновлении Azure CLI см. в статье Установка Azure CLI.

  • Центр Интернета вещей. Создайте его с помощью CLI или портал Azure.

  • Убедитесь, что в брандмауэре открыт порт 8883. В примерах в этой статье используется протокол MQTT, который обменивается данными через порт 8883. Этот порт может быть заблокирован в некоторых корпоративных и образовательных сетевых средах. Дополнительные сведения и способы устранения этой проблемы см. в разделе о подключении к Центру Интернета вещей по протоколу MQTT.

Проверка подлинности модуля

Для проверки подлинности удостоверений модулей можно использовать симметричные ключи или сертификаты X.509. Для проверки подлинности сертификата X.509 сертификат модуля должен иметь общее имя (CN) в CN=<deviceid>/<moduleid>формате . Пример:

openssl req -new -key d1m1.key.pem -out d1m1.csr -subj "/CN=device01\/module01"

Подготовка Cloud Shell

Если вы хотите использовать Cloud Shell Azure, необходимо сначала запустить и настроить его. Если вы используете CLI локально, перейдите к разделу Подготовка сеанса CLI .

  1. Щелкните значок Cloud Shell в заголовке страницы в портал Azure.

    Снимок экрана: глобальные элементы управления из заголовка страницы портал Azure с выделенным значком Cloud Shell.

    Примечание

    Если вы используете Cloud Shell в первый раз, вам будет предложено создать хранилище, необходимое для использования Cloud Shell. Выберите подписку для создания учетной записи хранения и общей папки для службы файлов Microsoft Azure.

  2. Используйте селектор среды на панели инструментов Cloud Shell, чтобы выбрать предпочитаемую среду CLI. В этой статье используется среда Bash . Вы также можете использовать среду PowerShell .

    Примечание

    Для некоторых команд требуется другой синтаксис или форматирование в средах Bash и PowerShell . Дополнительные сведения см. в статье Советы по успешному использованию Azure CLI.

    Снимок экрана: окно Cloud Shell Azure с выделенным селектором среды на панели инструментов.

Подготовка сеанса CLI

Затем необходимо подготовить сеанс Azure CLI. Если вы используете Cloud Shell, сеанс запускается на вкладке Cloud Shell. При использовании локального клиента CLI сеанс запускается в экземпляре CLI.

  1. Если вы используете Cloud Shell, перейдите к следующему шагу. В противном случае выполните команду az login в сеансе CLI, чтобы войти в учетную запись Azure.

    Если вы используете Cloud Shell, вы автоматически войдете в учетную запись Azure. Весь обмен данными между сеансом Azure CLI и Центром Интернета вещей проходит проверку подлинности и шифруется. В результате в этой статье не требуется дополнительная проверка подлинности, которую вы будете использовать с реальным устройством, например строкой подключения. Дополнительные сведения о входе с помощью Azure CLI см. в статье Вход с помощью Azure CLI.

    az login
    
  2. В сеансе CLI выполните команду az extension add . Эта команда добавляет расширение Интернета вещей Microsoft Azure для Azure CLI в оболочку CLI. Расширение добавляет в Azure CLI команды Центр Интернета вещей, IoT Edge и службы подготовки устройств Интернета вещей (DPS). После установки расширения его больше не нужно устанавливать в сеансе Cloud Shell.

    az extension add --name azure-iot
    

    Примечание

    В этой статье используется последняя версия расширения Azure IoT под названием azure-iot. Прежняя версия называется azure-cli-iot-ext. В каждый момент времени должна быть установлена только одна версия. Проверить установленные расширения можно с помощью команды az extension list.

    Используйте az extension remove --name azure-cli-iot-ext, чтобы удалить устаревшую версию расширения.

    Используйте az extension add --name azure-iot, чтобы добавить новую версию расширения.

    Чтобы узнать, какие расширения установлены, используйте az extension list.

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

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

Чтобы создать удостоверение устройства и удостоверение модуля, выполните приведенные ниже действия.

  1. В сеансе CLI выполните команду az iot hub device-identity create , заменив следующие заполнители соответствующими значениями. Эта команда создает удостоверение устройства для модуля.

    {DeviceName}. Имя устройства.

    {HubName}. Имя центра Интернета вещей.

    az iot hub device-identity create --device-id {DeviceName} --hub-name {HubName} 
    
  2. В сеансе CLI выполните команду az iot hub module-identity create , заменив следующие заполнители соответствующими значениями. Эта команда создает удостоверение модуля в идентификаторе устройства, созданном на предыдущем шаге.

    {DeviceName}. Имя устройства.

    {HubName}. Имя центра Интернета вещей.

    {ModuleName}. Имя модуля устройства.

    az iot hub module-identity create --device-id {DeviceName} --hub-name {HubName} \
                                      --module-id {ModuleName}
    

Обновление двойника модуля

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

  1. В сеансе CLI выполните команду az iot hub module-twin update , заменив следующие заполнители соответствующими значениями. В этом примере мы обновляем несколько требуемых свойств двойника модуля для удостоверения модуля, созданного в предыдущем разделе.

    {DeviceName}. Имя устройства.

    {HubName}. Имя центра Интернета вещей.

    {ModuleName}. Имя модуля устройства.

    az iot hub module-twin update --device-id {DeviceName} --hub-name {HubName} \
                                  --module-id {ModuleName} \
                                  --desired '{"conditions":{"temperature":{"warning":75, "critical":100}}}'
    
  2. В сеансе CLI убедитесь, что в ответе JSON отображаются результаты операции обновления. В следующем примере ответа JSON мы использовали SampleDevice и SampleModule для {DeviceName} заполнителей и {ModuleName} соответственно в команде az iot hub module-twin update CLI.

    {
      "authenticationType": "sas",
      "capabilities": null,
      "cloudToDeviceMessageCount": 0,
      "connectionState": "Disconnected",
      "deviceEtag": "Mzg0OEN1NzW=",
      "deviceId": "SampleDevice",
      "deviceScope": null,
      "etag": "AAAAAAAAAAI=",
      "lastActivityTime": "0001-01-01T00:00:00+00:00",
      "modelId": "",
      "moduleId": "SampleModule",
      "parentScopes": null,
      "properties": {
        "desired": {
          "$metadata": {
            "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
            "$lastUpdatedVersion": 2,
            "conditions": {
              "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
              "$lastUpdatedVersion": 2,
              "temperature": {
                "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                "$lastUpdatedVersion": 2,
                "critical": {
                  "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                  "$lastUpdatedVersion": 2
                },
                "warning": {
                  "$lastUpdated": "2023-02-17T21:26:10.5835633Z",
                  "$lastUpdatedVersion": 2
                }
              }
            }
          },
          "$version": 2,
          "conditions": {
            "temperature": {
              "critical": 100,
              "warning": 75
            }
          }
        },
        "reported": {
          "$metadata": {
            "$lastUpdated": "0001-01-01T00:00:00Z"
          },
          "$version": 1
        }
      },
      "status": "enabled",
      "statusReason": null,
      "statusUpdateTime": "0001-01-01T00:00:00+00:00",
      "tags": null,
      "version": 3,
      "x509Thumbprint": {
        "primaryThumbprint": null,
        "secondaryThumbprint": null
      }
    }
    

Дальнейшие действия

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

Чтобы продолжить работу с Центр Интернета вещей и шаблонами управления устройствами, такими как комплексное обновление на основе образов, см. статью Обновление устройств для Центр Интернета вещей Azure с использованием эталонного образа Raspberry Pi 3 B+.