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.
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.
Una sottoscrizione di Azure attiva.
Un hub IoT nella sottoscrizione.
Un'app client che invia dati sulla temperatura all'hub IoT di Azure. Questa esercitazione filtra i messaggi da dispositivo a cloud in base a una proprietà del messaggio denominata
temperatureAlert
. Alcuni esempi che generano messaggi con questa proprietà includono:- .NET SDK: SimulatedDevice
- Java SDK: send-event
- NODE.JS SDK: simple_sample_device
- C SDK: iothub_II_client_shared_sample
- Senza codice: simulatore online Raspberry Pi
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
Nella portale di Azure usare la barra di ricerca per cercare e selezionare bus di servizio.
Selezionare Crea per creare uno spazio dei nomi del bus di servizio.
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. Selezionare Rivedi e crea.
Seleziona Crea.
Attendere il completamento della distribuzione, quindi selezionare Vai alla risorsa.
Aggiungere una coda bus di servizio allo spazio dei nomi
Nella pagina Panoramica dello spazio dei nomi bus di servizio selezionare Coda.
Nel campo Nome specificare un nome per la coda. Accettare i valori predefiniti per gli altri campi e selezionare Crea.
Nello spazio dei nomi bus di servizio selezionare Criteri di accesso condiviso nella sezione Impostazioni del menu delle risorse.
Selezionare il criterio RootManageSharedAccessKey per aprirlo.
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
Nel portale di Azure passare all'hub IoT.
Nel menu delle risorse in Impostazioni hub selezionare Routing messaggi e quindi Aggiungi.
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. Selezionare Crea e avanti.
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.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
Nella portale di Azure cercare e selezionare App per la logica.
Selezionare Aggiungi per creare una nuova app per la logica.
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. Selezionare Rivedi e crea.
Seleziona Crea.
Al termine della distribuzione, selezionare Vai alla risorsa per aprire l'app per la logica.
Configurare il trigger dell'app per la logica
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.
Nella finestra di progettazione scorrere verso il basso fino a Modelli e selezionare App per la logica vuota.
Selezionare la scheda Tutti per visualizzare tutti i connettori e i trigger, quindi selezionare bus di servizio.
In Trigger selezionare Quando arrivano uno o più messaggi in una coda (completamento automatico).
Creare una connessione per il bus di servizio.
Specificare un nome di Connessione ion e quindi incollare la stringa di Connessione ion copiata dallo spazio dei nomi bus di servizio.
Seleziona Crea.
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.
Selezionare Salva nel menu di progettazione delle app per la logica per salvare le modifiche.
Configurare l'azione dell'app per la logica
Selezionare Nuovo passaggio nella finestra di progettazione dell'app per la logica.
Creare una connessione del servizio SMTP.
Cercare e selezionare SMTP.
Selezionare Invia messaggio di posta elettronica (V3) come azione per questo passaggio.
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.
Seleziona Crea.
Configurare l'azione Invia messaggio di posta elettronica .
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.
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.
Selezionare Salva per salvare la connessione SMTP.
(Facoltativo) Se è necessario disabilitare TLS per stabilire una connessione con il provider di posta elettronica e riabilitarla, seguire questa procedura:
Nel riquadro App per la logica, in Strumenti di sviluppo selezionare Connessioni API.
Nell'elenco delle connessioni API selezionare la connessione SMTP.
Nel riquadro smtp API Connessione ion selezionare Modifica connessione API in Generale.
Nel riquadro Modifica API Connessione ion selezionare Abilita SSL?, immettere nuovamente la password per l'account di posta elettronica e selezionare Salva.
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.
Avviare l'applicazione client nel dispositivo. Il codice client restituisce in modo casuale i messaggi di telemetria e imposta la
temperatureAlert
proprietà sutrue
quando la temperatura supera 30 C.È 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:
Gestire i dispositivi con l'estensione hub IoT di Azure per Visual Studio Code
Usare Power BI per visualizzare i dati dei sensori in tempo reale dall'hub IoT
Usare un’app Web per visualizzare i dati dei sensori in tempo reale dall'hub IoT
Usare App per la logica per il monitoraggio remoto e le notifiche