Usare Funzioni di Azure per filtrare i dati sul perimetro

Completato

Per ridurre la quantità di dati di telemetria inviati all'applicazione IoT Central, si vogliono filtrare i dati nel dispositivo IoT Edge prima che vengano inviati.

Per ridurre i costi associati all'invio dei dati di telemetria dai punti vendita all'applicazione e assicurarsi che gli operatori visualizzino solo i dati importanti si vuole filtrare i dati nel dispositivo IoT Edge. Si è stabilito che gli operatori hanno la necessità di visualizzare i dati di telemetria solo quando la temperatura ambientale è superiore ai 21 °C.

In questa unità si apprenderà come usare Funzioni di Azure come modulo nel dispositivo IoT Edge per implementare il filtro. Verrà anche illustrato come aggiornare il manifesto della distribuzione nell'applicazione IoT Central, affinché i dispositivi IoT Edge connessi all'applicazione IoT Central possano scaricarlo e aggiornare i moduli nel dispositivo.

Che cos'è Funzioni di Azure?

Funzioni di Azure è un servizio che consente di eseguire piccole parti di codice, chiamate funzioni, senza doversi preoccupare dell'infrastruttura dell'applicazione. Con Funzioni di Azure, l'infrastruttura cloud fornisce tutti i server aggiornati necessari per consentire l'esecuzione dell'applicazione su larga scala.

È anche possibile usare Funzioni di Azure per distribuire una funzione nel dispositivo IoT Edge come modulo, in modo che la funzione venga eseguita in locale, nel perimetro anziché nel cloud.

Si prevede di implementare il filtro usando Funzioni di Azure in modo che venga eseguito come uno dei moduli nel dispositivo IoT Edge. Questo filtro limita la quantità di dati di telemetria relativi alla temperatura del computer inviati all'applicazione IoT Central.

Come creare un modulo IoT Edge che contiene una funzione

È possibile usare più linguaggi per creare una funzione per Funzioni di Azure. La procedura seguente illustra come creare un modulo IoT Edge che contiene una funzione implementata in C#:

  1. Creare un progetto che includa lo scaffolding per un modulo Funzioni di Azure. È possibile creare il progetto usando Visual Studio Code o dalla riga di comando usando il comando dotnet.
  2. Implementare la logica di business per la funzione in C#.
  3. Creare il progetto per generare un'immagine Docker che contiene la funzione e il runtime di Funzioni di Azure richiesto.
  4. Caricare l'immagine Docker in un registro contenitori.
  5. Modificare il manifesto della distribuzione per il dispositivo IoT Edge per includere il nuovo modulo. La configurazione include l'indirizzo dell'immagine Docker e il modo in cui il modulo della funzione interagisce con altri moduli nel runtime IoT Edge.

Il frammento di codice seguente mostra la sezione modules con il nuovo modulo filterfunction nel manifesto della distribuzione aggiornato:

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

A seconda del registro contenitori in uso e della relativa configurazione, il manifesto della distribuzione potrebbe dover includere le credenziali per accedere al registro.

Il frammento di codice seguente mostra come vengono instradati i dati di telemetria tra i moduli nel manifesto di distribuzione aggiornato:

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

Aggiornare il manifesto della distribuzione in IoT Central

Per distribuire il nuovo modulo nel dispositivo IoT Edge, aggiornare il manifesto della distribuzione nell’applicazione IoT Central. Quando si aggiorna un manifesto della distribuzione in questo modo, i dispositivi IoT Edge connessi all'applicazione IoT Central lo scaricano e aggiornano i moduli nel dispositivo.

Usare Funzioni di Azure sul perimetro

1.

Dove è possibile eseguire una funzione di Azure?

2.

Qual è il ruolo del routing in un manifesto della distribuzione?