Esercitazione: inviare notifiche tramite posta elettronica sugli eventi dell'hub IoT di Azure usando Griglia di eventi e App per la logica
Griglia di eventi di Azure consente di rispondere agli eventi dell'hub IoT attivando azioni nelle applicazioni aziendali downstream.
Questo articolo illustra una configurazione di esempio che usa l'hub IoT e Griglia di eventi. Al termine, si ottiene un'app per la logica di Azure configurata per l'invio di un messaggio di posta elettronica di notifica ogni volta che un dispositivo si connette all'hub IoT o di disconnette dallo stesso. La Griglia di eventi può essere usata per ricevere una notifica tempestiva sulla disconnessione dei dispositivi critici. La visualizzazione di metriche e diagnostica può richiedere alcuni minuti(ad esempio 20 minuti o più) nei log/avvisi. I tempi di elaborazione più lunghi potrebbero non essere accettabili per l'infrastruttura critica.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
- Un account di un provider di posta elettronica supportato da App per la logica di Azure, ad esempio Office 365 Outlook o Outlook.com. Questo account di posta elettronica viene usato per inviare le notifiche degli eventi.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido per Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere con l'interfaccia della riga di comando di Azure.
Quando richiesto, installare l'estensione dell'interfaccia della riga di comando di Azure al primo uso. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Creare un hub IoT
È possibile creare rapidamente un nuovo hub IoT usando il terminale Azure Cloud Shell nel portale.
Accedi al portale di Azure.
Selezionare il pulsante Cloud Shell in alto a destra nella pagina.
Usare il comando seguente per creare un nuovo gruppo di risorse:
az group create --name {your resource group name} --location westus
Per creare un hub IoT, eseguire il comando seguente:
az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1
Ridurre a icona il terminale Azure Cloud Shell. Si tornerà alla shell più avanti nell'esercitazione.
Creare un'app per la logica
Creare quindi un'app per la logica e aggiungere un trigger di Griglia di eventi HTTP che elabora le richieste dall'hub IoT.
Creare una risorsa di App per la logica
Nel portale di Azure selezionare Crea una risorsa, quindi digitare "app per la logica" nella casella di ricerca e premere INVIO. Selezionare App per la logica nei risultati.
Nella schermata successiva, fai clic su Crea.
Assegnare all'app per la logica un nome univoco nella sottoscrizione, quindi selezionare la stessa sottoscrizione, gruppo di risorse e località dell'hub IoT. Scegliere il tipo di piano a consumo .
Selezionare Rivedi e crea.
Verificare le impostazioni e quindi selezionare Crea.
Dopo aver creato la risorsa, selezionare Vai alla risorsa.
Nella finestra di progettazione di App per la logica, scorrere in basso fino a visualizzare Modelli. Scegliere App per la logica vuota per creare un'app per la logica completamente nuova.
Selezionare un trigger
Un trigger è un evento specifico che avvia l'app per la logica. Per questa esercitazione, il trigger che attiva il flusso di lavoro riceve una richiesta tramite HTTP.
Nella barra di ricerca dei trigger e dei connettori digitare HTTP.
Scorrere i risultati e selezionare Richiesta - Alla ricezione di una richiesta HTTP come trigger.
Seleziona Utilizza payload di esempio per generare il collegamento dello schema.
Copiare i
json
valori seguenti e sostituire i valori<>
segnaposto con i propri.Incollare il file JSON Device connected event schema nella casella di testo e quindi selezionare Fine:
[{ "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8", "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", "subject": "devices/LogicAppTestDevice", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-06-02T19:17:44.4383997Z", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "<hub name>", "deviceId": "LogicAppTestDevice", "moduleId" : "DeviceModuleID" }, "dataVersion": "1", "metadataVersion": "1" }]
Importante
Assicurarsi di incollare il frammento JSON nella casella fornita dal payload di esempio per generare il collegamento allo schema e non direttamente nella casella Schema JSON del corpo della richiesta. Il collegamento al payload di esempio consente di generare il contenuto JSON in base al frammento JSON. Il codice JSON finale che finisce nel corpo della richiesta è diverso dal frammento JSON.
Questo evento viene pubblicato quando un dispositivo è connesso a un hub IoT.
Nota
È possibile che venga visualizzata una notifica popup, ricordarsi di includere un'intestazione Content-Type impostata su application/json nella richiesta. È possibile ignorare questo suggerimento in modo sicuro e passare alla sezione successiva.
Creare un'azione
Le azioni sono i passaggi eseguiti dopo che il trigger ha avviato il flusso di lavoro dell'app per la logica. Per questa esercitazione, l'azione è costituita dall'invio di una notifica dal provider di posta elettronica.
Seleziona Nuovo passaggio. Viene visualizzata una finestra che richiede di scegliere un'azione.
Cercare Outlook.
Selezionare il connettore corrispondente al provider di posta elettronica in uso. Questa esercitazione usa Outlook.com. I passaggi per altri provider di posta elettronica sono del tutto simili. In alternativa, usare Office 365 Outlook per ignorare il passaggio di accesso.
Seleziona l'azione Invia un messaggio e-mail (V2).
Selezionare Accedi e accedere al proprio account di posta elettronica. Selezionare Sì per consentire all'app di accedere alle informazioni.
Creare il modello di messaggio di posta elettronica.
A: immettere l'indirizzo di posta elettronica per ricevere i messaggi di notifica. Per questa esercitazione, usare un account di posta elettronica a cui è possibile accedere per i test.
Oggetto: compilare il testo per l'oggetto. Quando si fa clic sulla casella di testo Oggetto, è possibile selezionare il contenuto dinamico da includere. Ad esempio, questa esercitazione usa
IoT Hub alert: {eventType}
. Se non è possibile visualizzare contenuto dinamico, selezionare il collegamento ipertestuale Aggiungi contenuto dinamico per attivare o disattivare la visualizzazione Contenuto dinamico.
Dopo aver
eventType
selezionato , verrà visualizzato l'output del modulo di posta elettronica finora. Selezionare invia e-mail (V2) per modificare il corpo del messaggio di posta elettronica.- Corpo: scrivere il testo per il messaggio di posta elettronica. Selezionare le proprietà JSON dallo strumento selettore per includere il contenuto dinamico in base ai dati dell'evento. Se il contenuto dinamico non è visibile, selezionare il collegamento ipertestuale Aggiungi contenuto dinamico sotto la casella di testo Corpo. Se non vengono visualizzati i campi desiderati, fare clic su Altro nella schermata del contenuto dinamico per includere i campi dell'azione precedente.
Il modello di messaggio di posta elettronica creato sarà simile all'esempio seguente:
Selezionare Salva nella finestra di progettazione di App per la logica.
Copiare l'URL HTTP
Prima di uscire da Progettazione app per la logica, copiare l'URL su cui è in ascolto l'app per la logica per un trigger. Questo URL viene usato per configurare Griglia di eventi.
Espandere la casella di configurazione del trigger Alla ricezione di una richiesta HTTP facendo clic sull'opzione.
Copiare il valore di URL POST HTTP facendo clic sul pulsante di copia che si trova accanto.
Salvare l'URL per poterlo usare nella sezione successiva.
Configurare la sottoscrizione degli eventi dell'hub IoT
In questa sezione viene configurato l'hub IoT per la pubblicazione degli eventi che si verificano.
Nel portale di Azure passare all'hub IoT. È possibile trovare l'hub IoT selezionando hub IoT nel dashboard di Azure e quindi selezionare l'istanza dell'hub IoT dall'elenco delle risorse.
Selezionare Eventi.
Selezionare Sottoscrizione di eventi.
Creare la sottoscrizione di eventi con i valori seguenti:
Nella sezione DETTAGLI SOTTOSCRIZIONE EVENTI:
- Specificare un nome per la sottoscrizione di eventi.
- Selezionare Schema griglia di eventi come valore di Schema evento.
Nella sezione DETTAGLI ARGOMENTO:
- Verificare che Tipo di argomento sia impostato su Hub IoT.
- Verificare che il nome dell'hub IoT sia impostato come valore per il campo Risorsa di origine.
- Immettere un nome per l'argomento del sistema che verrà creato automaticamente. Per informazioni sugli argomenti di sistema, vedere Panoramica degli argomenti di sistema.
Nella sezione TIPI DI EVENTO:
Selezionare l'elenco a discesa Filtra per tipi di evento.
Deselezionare le caselle di controllo Dispositivo creato e Dispositivo eliminato, lasciando selezionate solo le caselle di controllo Dispositivo connesso e Dispositivo disconnesso.
Nella sezione DETTAGLI ENDPOINT:
- Selezionare Webhook come valore di Tipo di endpoint.
- Fare clic su Seleziona endpoint, incollare l'URL copiato dall'app per la logica e confermare la selezione.
Al termine, il riquadro avrà un aspetto simile all'esempio seguente:
Seleziona Crea.
Simulare un nuovo dispositivo che si connette e invia dati di telemetria
Testare l'app per la logica simulando rapidamente una connessione del dispositivo tramite l'interfaccia della riga di comando di Azure.
Selezionare il pulsante Cloud Shell per riaprire il terminale.
Eseguire il comando seguente per creare un'identità del dispositivo simulato:
az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
L'elaborazione potrebbe richiedere un minuto. Una volta creata, verrà visualizzata una stampa JSON nella console.
Eseguire il comando seguente per simulare la connessione del dispositivo all'hub IoT e l'invio dei dati di telemetria:
az iot device simulate -d simDevice -n {YourIoTHubName}
Quando il dispositivo simulato si connette a hub IoT, si riceverà un messaggio di posta elettronica che informa l'utente di un evento "Device Connessione ed".
Al termine della simulazione, si riceverà un messaggio di posta elettronica che informa l'utente di un evento "DeviceDisconnected".
Pulire le risorse
Questa esercitazione ha usato risorse che generano addebiti sulla sottoscrizione di Azure. Al termine dell'esercitazione e dopo aver testato i risultati ottenuti, disabilitare o eliminare le risorse che non si vogliono mantenere.
Per eliminare tutte le risorse create in questa esercitazione, eliminare il gruppo di risorse.
Selezionare Gruppi di risorse e quindi il gruppo di risorse creato per questa esercitazione.
Nel riquadro Gruppo di risorse selezionare Elimina gruppo di risorse. Viene richiesto di immettere il nome del gruppo di risorse e quindi di eliminarlo. Vengono rimosse anche tutte le risorse contenute al suo interno.
Passaggi successivi
- Altre informazioni su come rispondere agli eventi dell'hub IoT usando Griglia di eventi per attivare le azioni.
- Informazioni sull'ordinamento di eventi di connessione e disconnessione dispositivi
- Informazioni sulle altre operazioni che è possibile eseguire con Griglia di eventi.
Per un elenco completo dei Connettore app logici supportati, vedere
panoramica di Connessione ors.