Развертывание виртуальной машины Linux с поддержкой IoT Edge

Завершено

Чтобы проверить конфигурацию IoT Edge, необходимо развернуть среду выполнения IoT Edge на виртуальной машине (ВМ).

Перед развертыванием реальных устройств IoT Edge в хранилищах надо убедиться, что устройства будут работать должным образом. Чтобы протестировать сценарий, вы планируете развернуть среду выполнения IoT Edge на виртуальной машине Linux Azure, а затем развернуть на ней модули IoT Edge.

Здесь вы ознакомитесь с некоторыми основными понятиями, относящимися к IoT Edge, узнаете, как устройство IoT Edge подключается к приложению IoT Central и как IoT Central развертывает модули IoT Edge в среде выполнения IoT Edge.

Что такое среда выполнения IoT Edge?

Среда выполнения Azure IoT Edge позволяет использовать настраиваемую и облачную логику на устройствах IoT Edge. Эта среда выполнения размещается на устройстве IoT Edge. В ней выполняются операции управления и взаимодействия. Среда выполнения:

  • установка и обновление рабочих нагрузок на устройстве;
  • поддержание стандартов безопасности Azure IoT Edge на устройстве;
  • поддержание рабочего состояния модулей IoT Edge;
  • передача данных о состоянии работоспособности модуля в облако для удаленного мониторинга;
  • Управляет взаимодействием между подчиненными устройствами и устройством IoT Edge между модулями на устройстве IoT Edge, между устройством IoT Edge и облаком и между устройствами IoT Edge.

Что такое модули IoT Edge?

Модули IoT Edge — это единицы выполнения, которые выполняют бизнес-логику на границе. Модули реализуются как контейнеры, совместимые с Docker. Можно настроить взаимодействие нескольких модулей, создав конвейер обработки данных. Вы можете разрабатывать пользовательские модули или упаковывать определенные службы Azure в модули для предоставления информации в автономном режиме и на пограничном устройстве. Поскольку модули выполняются в контейнерах Docker, они ведут себя так же, как если бы их установили на ВМ или реальном устройстве.

Следующий урок посвящен установке среды выполнения IoT Edge и развертыванию пользовательского модуля, собирающего данные об окружающей среде для отправки в IoT Central. После этого оператор IoT Central может отслеживать условия окружающей среды в хранилищах, просматривая данные телеметрии на панелях мониторинга в приложении.

Как устройство IoT Edge подключается к IoT Central?

Устройства IoT Edge, как и другие устройства, используйте службу подготовки устройств Центр Интернета вещей (DPS) для подключения к приложению IoT Central. В предыдущем уроке при добавлении устройства в приложение IoT Central вы запишите идентификатор область, идентификатор устройства и ключ устройства. Эти значения добавляются в файл конфигурации IoT Edge на устройстве IoT Edge. Соответствующий раздел этого ФАЙЛА TOML выглядит следующим образом. registration_id — это код устройства.

[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"

[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }

На следующем уроке файл конфигурации редактируется при помощи скрипта развертывания для устройства IoT Edge.

Как IoT Central развертывает модули в среде выполнения IoT Edge?

На предыдущем уроке вы отправили манифест развертывания в шаблон при создании шаблона устройства для датчика окружающей среды. Когда среда выполнения IoT Edge подключается к приложению IoT Central, она скачивает манифест развертывания. Среда выполнения использует сведения в манифесте развертывания, чтобы определить, какие модули устанавливать и как их настраивать. Модули загружаются из реестра контейнеров, например Реестра контейнеров Azure или Docker Hub.

Используемый манифест развертывания устанавливает два необходимых системных модуля (edgeAgent и edgeHub) и пользовательский модуль SimulatedTemperatureSensor. Этот пользовательский модуль отправляет данные телеметрии об окружающей среде и машине в IoT Central и располагает двумя свойствами (SendData и SendInterval), которые оператор может использовать для настройки модуля.

{
  "modulesContent": {
    "$edgeAgent": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "runtime": {
          "type": "docker",
          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {}
          }
        },
        "systemModules": {
          "edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.4",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.4",
              "createOptions": "{}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {
            "route": "FROM /* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {
           "SendData": true,
           "SendInterval": 10
      }
    }
  }
}

Развертывание IoT Edge на виртуальной машине

1.

Как устройство IoT Edge подключается к IoT Central?

2.

Откуда устройство IoT Edge загружает модули?