Использование Функций Azure для фильтрации данных в пограничной области

Завершено

Чтобы уменьшить объем данных телеметрии, отправляемых в приложение IoT Central, перед отправкой нужно отфильтровать данные на устройстве IoT Edge.

Чтобы сократить затраты, связанные с отправкой данных телеметрии из магазинов в приложение, и обеспечить, чтобы операторы отображали только важные данные, необходимо отфильтровать данные на устройстве IoT Edge. Вы решили, что операторы должны видеть данные телеметрии только тогда, когда температура окружающей среды превышает 21°C.

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

Что такое Функции Azure?

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

Вы также можете использовать Функции Azure для развертывания функции на устройстве IoT Edge в качестве модуля, чтобы функция выполнялась локально, в пограничной области, а не в облаке.

Вы планируете реализовать фильтр, используя Функции Azure для запуска на устройстве IoT Edge в качестве одного из модулей. Этот фильтр ограничивает объем данных телеметрии, связанных с температурой компьютера и отправляемых в приложение IoT Central.

Создание модуля IoT Edge, содержащего функцию

При создании функции для Функций Azure можно использовать несколько языков. Следующие шаги позволяют понять, как создать модуль IoT Edge, содержащий функцию, реализованную на языке C#.

  1. Создайте проект, включающий формирование шаблонов для модуля функции Azure. Такой проект можно создать с помощью Visual Studio Code или в командной строке dotnet с помощью команды.
  2. Реализуйте бизнес-логику для функции на языке C#.
  3. Скомпилируйте проект, чтобы создать образ Docker, содержащий функцию и требуемую среду выполнения Функций Azure.
  4. Отправьте образ Docker в реестр контейнеров.
  5. Измените манифест развертывания для устройства IoT Edge, включив в него новый модуль. Конфигурация включает адрес образа Docker и определяет взаимодействие модуля функции с другими модулями в среде выполнения IoT Edge.

В следующем фрагменте кода показан раздел modules с новым модулем filterfunction в обновленном манифесте развертывания.

"modules": {
  "SimulatedTemperatureSensor": {
    "version": "1.0",
    "type": "docker",
    "status": "running",
    "restartPolicy": "always",
    "settings": {
      "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
      "createOptions": "{}"
    }
  },
  "filterfunction": {
    "version": "1.0",
    "type": "docker",
    "status": "running",
    "restartPolicy": "always",
    "settings": {
      "image": "<YOUR CONTAINER REGISTRY NAME>.azurecr.io/filterfunction:v1",
      "createOptions": ""
    }
  }
}

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

В следующем фрагменте кода показано, как происходит маршрутизация данных телеметрии между модулями в обновленном манифесте развертывания.

"routes": {
    "FilterFunctionToIoTCentral": "FROM /messages/modules/filterfunction/outputs/* INTO $upstream",
    "sensorToFilterFunction": "FROM /messages/modules/SimulatedTemperatureSensor/outputs/temperatureOutput INTO BrokeredEndpoint(\"/modules/filterfunction/inputs/input1\")"
  },

Обновление манифеста развертывания в IoT Central

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

Использование Функций Azure в пограничной области

1.

Где можно запустить функцию Azure?

2.

Какова роль маршрутизации в манифесте развертывания?