Filtrowanie danych na brzegu za pomocą usługi Azure Functions

Ukończone

Aby zmniejszyć ilość danych telemetrycznych wysyłanych do aplikacji usługi IoT Central, chcesz filtrować dane na urządzeniu usługi IoT Edge przed jego wysłaniem.

Aby zmniejszyć koszty związane z wysyłaniem danych telemetrycznych ze sklepów do aplikacji i upewnić się, że operatorzy widzą tylko ważne dane, chcesz filtrować dane na urządzeniu usługi IoT Edge. Ustaliliśmy, że operatory muszą wyświetlać dane telemetryczne tylko wtedy, gdy temperatura otoczenia przekracza 21°C.

W tym miejscu dowiesz się, jak używać usługi Azure Functions jako modułu na urządzeniu usługi IoT Edge w celu zaimplementowania filtru. Dowiesz się również, jak zaktualizować manifest wdrożenia do aplikacji usługi IoT Central, więc urządzenia usługi IoT Edge połączone z aplikacją usługi IoT Central pobierają go i aktualizują moduły na urządzeniu.

Co to jest usługa Azure Functions?

Azure Functions to usługa, która umożliwia uruchamianie małych fragmentów kodu nazywanych funkcjami bez martwienia się o infrastrukturę aplikacji. Dzięki usłudze Azure Functions infrastruktura w chmurze udostępnia wszystkie aktualne serwery, które należy zapewnić działanie aplikacji na dużą skalę.

Za pomocą usługi Azure Functions można również wdrożyć funkcję na urządzeniu usługi IoT Edge jako moduł, aby funkcja działała lokalnie, a nie w chmurze.

Planujesz zaimplementować filtr przy użyciu usługi Azure Functions do uruchomienia jako jeden z modułów na urządzeniu usługi IoT Edge. Ten filtr ogranicza ilość danych telemetrycznych temperatury maszyny wysyłanych do aplikacji usługi IoT Central.

Jak utworzyć moduł usługi IoT Edge zawierający funkcję

Do utworzenia funkcji dla usługi Azure Functions można użyć wielu języków. W poniższych krokach opisano sposób tworzenia modułu usługi IoT Edge zawierającego funkcję zaimplementowaną w języku C#:

  1. Utwórz projekt zawierający szkielet modułu funkcji platformy Azure. Taki projekt można utworzyć przy użyciu programu Visual Studio Code lub w wierszu polecenia za pomocą dotnet polecenia .
  2. Zaimplementuj logikę biznesową dla funkcji w języku C#.
  3. Skompiluj projekt, aby wygenerować obraz platformy Docker zawierający funkcję i wymagane środowisko uruchomieniowe usługi Azure Functions.
  4. Przekaż obraz platformy Docker do rejestru kontenerów.
  5. Zmodyfikuj manifest wdrożenia urządzenia usługi IoT Edge, aby uwzględnić nowy moduł. Konfiguracja obejmuje adres obrazu platformy Docker i sposób interakcji modułu funkcji z innymi modułami w środowisku uruchomieniowym usługi IoT Edge.

Poniższy fragment kodu przedstawia modules sekcję z nowym filterfunction modułem w zaktualizowanym manifeście wdrożenia:

"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": ""
    }
  }
}

W zależności od używanego rejestru kontenerów i jego konfiguracji manifest wdrożenia może wymagać dołączenia poświadczeń w celu uzyskania dostępu do rejestru.

Poniższy fragment kodu pokazuje, jak telemetria jest kierowana między modułami w zaktualizowanym manifeście wdrożenia:

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

Aktualizowanie manifestu wdrożenia w usłudze IoT Central

Aby wdrożyć nowy moduł na urządzeniu usługi IoT Edge, zaktualizuj manifest wdrożenia do aplikacji usługi IoT Central. Po zaktualizowaniu manifestu wdrożenia w ten sposób urządzenia usługi IoT Edge połączone z aplikacją usługi IoT Central pobierają go i aktualizują moduły na urządzeniu.

Korzystanie z usługi Azure Functions na brzegu sieci

1.

Gdzie można uruchomić funkcję platformy Azure?

2.

Jaka jest rola routingu w manifeście wdrożenia?