Salvare i messaggi dell'hub IoT che contengono dati di sensori nell'archiviazione tabelle di Azure

Diagramma end-to-end

Nota

Prima di iniziare questa esercitazione, configurare il dispositivo. In questo articolo si configureranno il dispositivo e l'hub IoT di Azure e si distribuirà un'applicazione di esempio da eseguire nel dispositivo. L'applicazione invia i dati del sensore raccolti all'hub IoT.

Contenuto dell'esercitazione

Si apprenderà come creare un account di archiviazione di Azure e un'app per le funzioni di Azure per archiviare i messaggi dell'hub IoT nell'archiviazione tabelle di Azure.

Operazioni da fare

  • Creare un account di archiviazione di Azure
  • Preparare la connessione dell'hub IoT per la lettura dei messaggi.
  • Creare e distribuire un'app per le funzioni di Azure.

Elementi necessari

  • Configurare il dispositivo in modo da soddisfare i requisiti seguenti:
    • Una sottoscrizione di Azure attiva
    • Un hub IoT nella sottoscrizione
    • Un'applicazione in esecuzione che invia messaggi all'hub IoT di Azure

Creare un account di archiviazione di Azure

  1. Nel portale di Azure fare clic su Nuova > Archiviazione > Account di archiviazione.

  2. Immettere le informazioni necessarie per l'account di archiviazione:

    Creare un account di archiviazione nel portale di Azure

    • Nome: nome dell'account di archiviazione. Il nome deve essere univoco a livello globale.

    • Gruppo di risorse: usare lo stesso gruppo di risorse usato da hub IoT.

    • Aggiungi al dashboard: selezionare questa opzione per semplificare l'accesso all'hub IoT dal dashboard.

  3. Fare clic su Crea.

Preparare la connessione dell'hub IoT per la lettura dei messaggi

L'hub IoT espone un endpoint predefinito compatibile con l'hub eventi per consentire alle applicazioni di leggere i messaggi dell'hub IoT. Nel frattempo, le applicazioni usano gruppi di consumer per leggere i dati dall'hub IoT. Prima di creare un'app per le funzioni di Azure per la lettura dei dati dall'hub IoT, è necessario:

  • Ottenere la stringa di connessione dell'endpoint dell'hub IoT.
  • Creare un gruppo di consumer per l'hub IoT.

Ottenere la stringa di connessione dell'endpoint dell'hub IoT

  1. Aprire l'hub IoT.

  2. Nel riquadro Hub IoT, in Messaggistica, fare clic su Endpoint.

  3. Nel riquadro destro, in Endpoint predefiniti, fare clic su Eventi.

  4. Nel riquadro Proprietà prendere nota dei valori seguenti:

    • Endpoint compatibile con l'hub eventi
    • Nome compatibile con l'hub eventi

    Ottenere la stringa di connessione dell'endpoint dell'hub IoT nel portale di Azure

  5. Nel riquadro Hub IoT, in Impostazioni, fare clic su Criteri di accesso condivisi.

  6. Fare clic su iothubowner.

  7. Prendere nota del valore presente in Chiave primaria.

  8. Creare la stringa di connessione dell'endpoint dell'hub IoT nel modo seguente:

    Endpoint=<Event Hub-compatible endpoint>;SharedAccessKeyName=iothubowner;SharedAccessKey=<Primary key>

    Nota

    Sostituire <Event Hub-compatible endpoint> e <Primary key> con i valori annotati in precedenza.

Creare un gruppo di consumer per l'hub IoT

  1. Aprire l'hub IoT.

  2. Nel riquadro Hub IoT, in Messaggistica, fare clic su Endpoint.

  3. Nel riquadro destro, in Endpoint predefiniti, fare clic su Eventi.

  4. Nel riquadro Proprietà immettere un nome in Gruppi di consumer e prendere nota del nome.

  5. Fare clic su Salva.

Creare e distribuire un'app per le funzioni di Azure

  1. Nel portale di Azure fare clic su Nuovo > Calcolo > App per le funzioni.

  2. Immettere le informazioni necessarie per l'app per le funzioni.

    Creare un'app per le funzioni nel portale di Azure

    • Nome app: nome dell'app per le funzioni. Il nome deve essere univoco a livello globale.

    • Gruppo di risorse: usare lo stesso gruppo di risorse usato da hub IoT.

    • Account di archiviazione: selezionare l'account di archiviazione creato.

    • Aggiungi al dashboard: selezionare questa opzione per semplificare l'accesso all'app per le funzioni dal dashboard.

  3. Fare clic su Crea.

  4. Dopo aver creato l'app per le funzioni, aprirla.

  5. Nell'app per le funzioni creare una nuova funzione seguendo questa procedura:

    a. Fare clic su Nuova funzione.

    b. Selezionare JavaScript per Linguaggio ed Elaborazione dati per Scenario.

    c. Fare clic su Creare questa funzione e quindi su Nuova funzione.

    d. Selezionare JavaScript per il linguaggio e Elaborazione dati per lo scenario.

    e. Fare clic sul modello EventHubTrigger-JavaScript.

    f. Immettere le informazioni necessarie per il modello.

    • Assegnare un nome alla funzione: nome della funzione.

    • Nome hub eventi: nome compatibile con l'hub eventi annotato in precedenza.

    • Connessione dell'hub eventi: fare clic su Nuovo per aggiungere la stringa di connessione dell'endpoint dell'hub IoT creata.

    g. Fare clic su Crea.

  6. Configurare un output della funzione seguendo questa procedura:

    a. Fare clic su Integrazione > Nuovo output > Archiviazione tabelle di Azure > Seleziona.

    Aggiungere l'archiviazione tabelle all'app per le funzioni nel portale di Azure

    b. Immettere le informazioni necessarie.

    • Nome del parametro della tabella: usare outputTable, che verrà usato nel codice di Funzioni di Azure.

    • Nome tabella: usare deviceData.

    • Connessione dell'account di archiviazione: fare clic su nuovo e selezionare o immettere l'account di archiviazione. Se l'account di archiviazione non viene visualizzato, vedere Requisiti dell'account di archiviazione.

    c. Fare clic su Salva.

  7. In Trigger fare clic su Hub eventi di Azure (eventHubMessages).

  8. In Gruppo di consumer dell'hub eventi immettere il nome del gruppo di consumer creato, quindi fare clic su Salva.

  9. Fare clic su Sviluppo e quindi su Visualizza file.

  10. Sostituire il codice in index.js con il codice seguente:

    'use strict';
    
    // This function is triggered each time a message is received in the IoT hub.
    // The message payload is persisted in an Azure storage table
    
    module.exports = function (context, iotHubMessage) {
    context.log('Message received: ' + JSON.stringify(iotHubMessage));
    var date = Date.now();
    var partitionKey = Math.floor(date / (24 * 60 * 60 * 1000)) + '';
    var rowKey = date + '';
    context.bindings.outputTable = {
     "partitionKey": partitionKey,
     "rowKey": rowKey,
     "message": JSON.stringify(iotHubMessage)
    };
    context.done();
    };
    
  11. Fare clic su Salva.

È stata creata l'app per le funzioni, che archivia i messaggi ricevuti dall'hub IoT nell'archiviazione tabelle di Azure.

Nota

È possibile usare il pulsante Esegui per testare l'app per le funzioni. Quando fa clic su Esegui, il messaggio di test viene inviato all'hub IoT. All'arrivo del messaggio, l'app per le funzioni si avvia e salva il messaggio nell'archiviazione tabelle di Azure. Il riquadro Log registra i dettagli del processo.

Verificare il messaggio nell'archivio tabelle

  1. Eseguire l'applicazione di esempio nel dispositivo per inviare messaggi all'hub IoT.

  2. Scaricare e installare Azure Storage Explorer.

  3. Aprire Storage Explorer, fare clic su Add an Azure Account (Aggiungi un account Azure) > Accedi e quindi accedere all'account Azure.

  4. Fare clic sulla sottoscrizione di Azure > Account di archiviazione > account di archiviazione > Tabelle > deviceData.

    Nella tabella deviceData saranno visibili i messaggi inviati dal dispositivo all'hub IoT.

Passaggi successivi

Sono stati creati l'account di archiviazione di Azure e l'app per le funzioni di Azure, che archivia i messaggi ricevuti dall'hub IoT nell'archiviazione tabelle di Azure.

Per altre informazioni sulle attività iniziali con l'hub IoT di Azure e per esplorare altri scenari IoT, vedere: