Esercitazione: Monitorare i dispositivi IoT e inviare notifiche con App per la logica di Azure

Usare App per la logica di Azure per monitorare i dati di telemetria dei dispositivi in ingresso da hub IoT e inviare notifiche quando vengono attivati gli avvisi.

End-to-end diagram

App per la logica di Azure consente di orchestrare i flussi di lavoro tra servizi locali e cloud, più aziende e diversi protocolli. Un'app per la logica inizia con un trigger, che viene quindi seguito da una o più azioni che possono essere sequenziate usando controlli predefiniti, ad esempio condizioni e iteratori. Questa flessibilità rende app per la logica una soluzione IoT ideale per gli scenari di monitoraggio IoT. Ad esempio, l'arrivo dei dati da un dispositivo in un endpoint hub IoT può avviare flussi di lavoro dell'app per la logica per il data warehouse in un BLOB Archiviazione di Azure, inviare avvisi di posta elettronica per avvisare le anomalie dei dati, pianificare una visita di un tecnico se un dispositivo segnala un errore e così via.

In questa esercitazione si eseguono le seguenti attività:

Creare una coda del bus di servizio. Creare una route nell'hub IoT che invia messaggi alla coda bus di servizio se i messaggi contengono letture di temperatura anomale. Creare un'app per la logica che controlla la messaggistica in arrivo nella coda e invia un avviso di posta elettronica.

Il codice client in esecuzione nel dispositivo imposta una proprietà dell'applicazione, temperatureAlert, in ogni messaggio di telemetria inviato all'hub IoT. Quando il codice client rileva una temperatura superiore a una determinata soglia, imposta questa proprietà su true; in caso contrario, imposta la proprietà su false.

I messaggi in arrivo nell'hub IoT sono simili ai seguenti, con i dati di telemetria contenuti nel corpo e la temperatureAlert proprietà contenuta nelle proprietà dell'applicazione (le proprietà di sistema non vengono visualizzate):

{
  "body": {
    "messageId": 18,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 27.796111770668457,
    "humidity": 66.77637926438427
  },
  "applicationProperties": {
    "temperatureAlert": "false"
  }
}

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Prerequisiti

Preparare i prerequisiti seguenti prima di iniziare questa esercitazione.

Creare uno spazio dei nomi e una coda bus di servizio

Creare uno spazio dei nomi del bus di servizio e una coda Più avanti in questo articolo viene creata una regola di routing nell'hub IoT per indirizzare i messaggi contenenti un avviso di temperatura alla coda bus di servizio. Un'app per la logica monitora la coda per i messaggi in arrivo e invia una notifica per ogni avviso.

Creare uno spazio dei nomi del bus di servizio

  1. Nella portale di Azure usare la barra di ricerca per cercare e selezionare bus di servizio.

  2. Selezionare Crea per creare uno spazio dei nomi del bus di servizio.

  3. Nel riquadro Crea spazio dei nomi specificare le informazioni seguenti:

    Parametro Valore
    Abbonamento Scegliere la stessa sottoscrizione che contiene l'hub IoT.
    Gruppo di risorse Scegliere lo stesso gruppo di risorse che contiene l'hub IoT.
    Nome spazio dei nomi Specificare un nome per lo spazio dei nomi del bus di servizio. Lo spazio dei nomi deve essere univoco in Azure.
    Location Scegliere la stessa posizione usata dall'hub IoT.
    Piano tariffario Selezionare Basic nell'elenco a discesa. Il livello Base è sufficiente per questa esercitazione.
  4. Selezionare Rivedi e crea.

  5. Seleziona Crea.

  6. Attendere il completamento della distribuzione, quindi selezionare Vai alla risorsa.

Aggiungere una coda bus di servizio allo spazio dei nomi

  1. Nella pagina Panoramica dello spazio dei nomi bus di servizio selezionare Coda.

    Screenshot of the namespace overview page to add a queue.

  2. Nel campo Nome specificare un nome per la coda. Accettare i valori predefiniti per gli altri campi e selezionare Crea.

  3. Nello spazio dei nomi bus di servizio selezionare Criteri di accesso condiviso nella sezione Impostazioni del menu delle risorse.

  4. Selezionare il criterio RootManageSharedAccessKey per aprirlo.

  5. Copiare il valore di Primary stringa di connessione e salvarlo per usarlo più avanti in questa esercitazione quando si configura l'app per la logica.

Aggiungere un endpoint personalizzato e una regola di routing all'hub IoT

Aggiungere un endpoint personalizzato per la coda bus di servizio all'hub IoT. Creare quindi una regola di routing dei messaggi per indirizzare i messaggi che contengono un avviso di temperatura a tale endpoint, in cui vengono prelevati dall'app per la logica. La regola di routing usa una query di routing, temperatureAlert = "true", per inoltrare i messaggi in base al valore della proprietà dell'applicazione temperatureAlert impostata dal codice client in esecuzione nel dispositivo. Per altre informazioni, vedere Query di routing dei messaggi in base alle proprietà del messaggio.

Aggiungere un endpoint personalizzato e una route

  1. Nel portale di Azure passare all'hub IoT.

  2. Nel menu delle risorse in Impostazioni hub selezionare Routing messaggi e quindi Aggiungi.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

  3. Nella scheda Endpoint creare un endpoint per la coda bus di servizio specificando le informazioni seguenti:

    Parametro Valore
    Tipo di endpoint Selezionare bus di servizio coda.
    Nome endpoint Specificare un nome per il nuovo endpoint mappato alla coda bus di servizio.
    spazio dei nomi bus di servizio Usare il menu a discesa per selezionare lo spazio dei nomi bus di servizio creato nella sezione precedente.
    coda del bus di servizio Usare il menu a discesa per selezionare la coda bus di servizio creata nello spazio dei nomi.

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. Selezionare Crea e avanti.

  5. Nella scheda Route immettere le informazioni seguenti per creare una route che punta all'endpoint della coda bus di servizio:

    Parametro valore
    Nome Specificare un nome univoco per la route.
    Origine dati Mantenere l'origine dati del messaggio di telemetria del dispositivo predefinita.
    Query di routing immettere temperatureAlert = "true" come stringa di query.

    Screenshot that shows adding a route with a query.

  6. Selezionare Crea e ignora arricchimenti.

Configurare App per la logica per le notifiche

Nella sezione precedente si configura l'hub IoT per instradare i messaggi contenenti un avviso di temperatura alla coda bus di servizio. A questo punto, si configura un'app per la logica per monitorare la coda di bus di servizio e si invia una notifica di posta elettronica ogni volta che viene aggiunto un messaggio alla coda.

Creare un'app per la logica

  1. Nella portale di Azure cercare e selezionare App per la logica.

  2. Selezionare Aggiungi per creare una nuova app per la logica.

  3. Immettere le informazioni seguenti nella scheda Informazioni di base di Crea app per la logica:

    Parametro Valore
    Gruppo di risorse Selezionare lo stesso gruppo di risorse che contiene l'hub IoT.
    Nome Assegnare un nome all'app per la logica.
    Area Selezionare una posizione nelle vicinanze.
    Tipo di piano Selezionare Consumo, che è sufficiente per questa esercitazione.

    Screenshot that shows creating a logic app in the Azure portal.

  4. Selezionare Rivedi e crea.

  5. Seleziona Crea.

  6. Al termine della distribuzione, selezionare Vai alla risorsa per aprire l'app per la logica.

Configurare il trigger dell'app per la logica

  1. Nella pagina delle risorse dell'app per la logica nella portale di Azure aprire progettazione app per la logica dalla sezione Strumenti di sviluppo del menu delle risorse.

  2. Nella finestra di progettazione scorrere verso il basso fino a Modelli e selezionare App per la logica vuota.

    Screenshot that shows selecting the Blank Logic App template.

  3. Selezionare la scheda Tutti per visualizzare tutti i connettori e i trigger, quindi selezionare bus di servizio.

    Select Service Bus to start creating your logic app in the Azure portal.

  4. In Trigger selezionare Quando arrivano uno o più messaggi in una coda (completamento automatico).

    Select the trigger for your logic app in the Azure portal.

  5. Creare una connessione per il bus di servizio.

    1. Specificare un nome di Connessione ion e quindi incollare la stringa di Connessione ion copiata dallo spazio dei nomi bus di servizio.

    2. Seleziona Crea.

    3. Nella schermata successiva usare il menu a discesa per selezionare la coda creata nello spazio dei nomi bus di servizio. Immettere quindi 175 per Numero massimo di messaggi.

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. Selezionare Salva nel menu di progettazione delle app per la logica per salvare le modifiche.

Configurare l'azione dell'app per la logica

  1. Selezionare Nuovo passaggio nella finestra di progettazione dell'app per la logica.

  2. Creare una connessione del servizio SMTP.

    1. Cercare e selezionare SMTP.

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. Selezionare Invia messaggio di posta elettronica (V3) come azione per questo passaggio.

    3. Specificare un nome di Connessione ion, quindi compilare il resto dei campi con le informazioni SMTP per l'account di posta elettronica da usare per inviare i messaggi di notifica.

      Usare i collegamenti seguenti per trovare le informazioni SMTP, a seconda del provider di posta elettronica:

      Nota

      Potrebbe essere necessario disabilitare TLS/SSL per stabilire la connessione. Se questo è il caso e si vuole riabilitare TLS dopo aver stabilito la connessione, vedere il passaggio facoltativo alla fine di questa sezione.

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. Seleziona Crea.

  3. Configurare l'azione Invia messaggio di posta elettronica .

    1. Nell'elenco a discesa Aggiungi nuovo parametro nel passaggio Invia messaggio di posta elettronica selezionare i parametri seguenti:

      • Da
      • Per
      • Argomento
      • Testo

      Fare clic o toccare in un punto qualsiasi della schermata per chiudere la casella di selezione.

      Choose SMTP connection email fields to include in email.

    2. Immettere le informazioni seguenti per i parametri di posta elettronica selezionati nel passaggio precedente:

      Parametro Valore
      Da Indirizzo di posta elettronica configurato per la connessione SMTP.
      Per Indirizzo di posta elettronica o indirizzi in cui si desidera inviare messaggi di posta elettronica di notifica.
      Argomento High temperature detected.
      Testo High temperature detected.

      Se viene visualizzata la finestra di dialogo Aggiungi contenuto dinamico, selezionare Nascondi per chiuderla. In questa esercitazione non si usa contenuto dinamico.

      Provide details for SMTP connection email fields.

  4. Selezionare Salva per salvare la connessione SMTP.

  5. (Facoltativo) Se è necessario disabilitare TLS per stabilire una connessione con il provider di posta elettronica e riabilitarla, seguire questa procedura:

    1. Nel riquadro App per la logica, in Strumenti di sviluppo selezionare Connessioni API.

    2. Nell'elenco delle connessioni API selezionare la connessione SMTP.

    3. Nel riquadro smtp API Connessione ion selezionare Modifica connessione API in Generale.

    4. Nel riquadro Modifica API Connessione ion selezionare Abilita SSL?, immettere nuovamente la password per l'account di posta elettronica e selezionare Salva.

      Edit SMTP API connection in your logic app in the Azure portal.

L'app per la logica è ora pronta per elaborare gli avvisi relativi alla temperatura dalla coda bus di servizio e inviare notifiche all'account di posta elettronica.

Testare l'app per la logica

Iniziare a inviare messaggi di temperatura dal dispositivo IoT per testare la pipeline di monitoraggio e notifica.

  1. Avviare l'applicazione client nel dispositivo. Il codice client restituisce in modo casuale i messaggi di telemetria e imposta la temperatureAlert proprietà su true quando la temperatura supera 30 C.

  2. È consigliabile iniziare a ricevere notifiche di posta elettronica inviate dall'app per la logica.

    Nota

    Il provider di servizi di posta elettronica potrebbe dover verificare l'identità del mittente per verificare che sia l'invio del messaggio di posta elettronica viene eseguito dall'utente.

Pulire le risorse

Se non sono più necessarie le risorse create in questa esercitazione, eliminarle e il gruppo di risorse nel portale. A tale scopo, selezionare il gruppo di risorse che contiene l'hub IoT e selezionare Elimina.

In alternativa, usare l'interfaccia della riga di comando:

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

Passaggi successivi

In questa esercitazione è stata creata un'app per la logica che connette l'hub IoT e la cassetta postale per il monitoraggio della temperatura e le notifiche.

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