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.

Creare un hub IoT

È possibile creare rapidamente un nuovo hub IoT usando il terminale Azure Cloud Shell nel portale.

  1. Accedi al portale di Azure.

  2. Selezionare il pulsante Cloud Shell in alto a destra nella pagina.

    Screenshot of how to open the Azure Cloud Shell from the Azure portal.

  3. Usare il comando seguente per creare un nuovo gruppo di risorse:

    az group create --name {your resource group name} --location westus
    
  4. 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 
    
  5. 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

  1. 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.

    Screenshot of how to select the logic app from a list of resources.

  2. Nella schermata successiva, fai clic su Crea.

  3. 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 .

    Screenshot of how to configure your logic app.

  4. Selezionare Rivedi e crea.

  5. Verificare le impostazioni e quindi selezionare Crea.

  6. Dopo aver creato la risorsa, selezionare Vai alla risorsa.

  7. 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.

    Screenshot of the Logic App Designer templates.

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.

  1. Nella barra di ricerca dei trigger e dei connettori digitare HTTP.

  2. Scorrere i risultati e selezionare Richiesta - Alla ricezione di una richiesta HTTP come trigger.

    Select HTTP request trigger

  3. Seleziona Utilizza payload di esempio per generare il collegamento dello schema.

    Use sample payload

  4. Copiare i json valori seguenti e sostituire i valori <> segnaposto con i propri.

  5. 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.

  1. Seleziona Nuovo passaggio. Viene visualizzata una finestra che richiede di scegliere un'azione.

  2. Cercare Outlook.

  3. 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.

    Select email provider connector

  4. Seleziona l'azione Invia un messaggio e-mail (V2).

  5. Selezionare Accedi e accedere al proprio account di posta elettronica. Selezionare per consentire all'app di accedere alle informazioni.

  6. 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 eventTypeselezionato , verrà visualizzato l'output del modulo di posta elettronica finora. Selezionare invia e-mail (V2) per modificare il corpo del messaggio di posta elettronica.

    Screenshot of the condensed body output form.

    • 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:

    Screenshot of how to create an event email in the template.

  7. 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.

  1. Espandere la casella di configurazione del trigger Alla ricezione di una richiesta HTTP facendo clic sull'opzione.

  2. Copiare il valore di URL POST HTTP facendo clic sul pulsante di copia che si trova accanto.

    Copy the HTTP POST URL

  3. 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.

  1. 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.

  2. Selezionare Eventi.

    Open the Event Grid details

  3. Selezionare Sottoscrizione di eventi.

    Create new event subscription

  4. Creare la sottoscrizione di eventi con i valori seguenti:

    1. Nella sezione DETTAGLI SOTTOSCRIZIONE EVENTI:

      1. Specificare un nome per la sottoscrizione di eventi.
      2. Selezionare Schema griglia di eventi come valore di Schema evento.
    2. Nella sezione DETTAGLI ARGOMENTO:

      1. Verificare che Tipo di argomento sia impostato su Hub IoT.
      2. Verificare che il nome dell'hub IoT sia impostato come valore per il campo Risorsa di origine.
      3. Immettere un nome per l'argomento del sistema che verrà creato automaticamente. Per informazioni sugli argomenti di sistema, vedere Panoramica degli argomenti di sistema.
    3. Nella sezione TIPI DI EVENTO:

      1. Selezionare l'elenco a discesa Filtra per tipi di evento.

      2. Deselezionare le caselle di controllo Dispositivo creato e Dispositivo eliminato, lasciando selezionate solo le caselle di controllo Dispositivo connesso e Dispositivo disconnesso.

        select subscription event types

    4. Nella sezione DETTAGLI ENDPOINT:

      1. Selezionare Webhook come valore di Tipo di endpoint.
      2. Fare clic su Seleziona endpoint, incollare l'URL copiato dall'app per la logica e confermare la selezione.

      select endpoint url

      Al termine, il riquadro avrà un aspetto simile all'esempio seguente:

      Screenshot of your 'Create Event Subscription' page in the Azure portal.

  5. 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.

  1. Selezionare il pulsante Cloud Shell per riaprire il terminale.

  2. 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.

  3. 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}
    
  4. 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".

  5. Al termine della simulazione, si riceverà un messaggio di posta elettronica che informa l'utente di un evento "DeviceDisconnected".

    Screenshot of the email you should receive.

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.

  1. Selezionare Gruppi di risorse e quindi il gruppo di risorse creato per questa esercitazione.

  2. 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

Per un elenco completo dei Connettore app logici supportati, vedere

panoramica di Connessione ors.