Ordinare gli eventi di connessione dei dispositivi dall'hub IoT di Azure tramite Azure Cosmos DB
Griglia di eventi di Azure consente di creare applicazioni basate su eventi e integrare facilmente eventi IoT nelle soluzioni aziendali. Questo articolo illustra una configurazione con Cosmos DB, App per la logica, eventi hub IoT e un dispositivo Raspberry Pi simulato per raccogliere e archiviare eventi di connessione e disconnessione di un dispositivo.
Dal momento in cui viene eseguito il dispositivo, viene attivato un ordine di operazioni:
Il dispositivo Pi, usando la chiave del dispositivo dell'hub IoT, viene avviato e quindi arrestato
Un evento hub IoT acquisisce l'attività del dispositivo, quindi invia una richiesta HTTP all'app per la logica
L'app per la logica elabora la richiesta HTTP in base a una condizione impostata
L'app per la logica registra gli eventi di connessione o disconnessione in un nuovo documento in Cosmos DB
Prerequisiti
Un account Azure Cosmos DB per NoSQL attivo. Se non ne è ancora stato creato un', vedere la procedura dettagliata Creare un account di database.
Una raccolta nel database. Vedere la procedura dettagliata Aggiungere una raccolta. Quando si crea la raccolta, usare
/id
per la chiave di partizione.Una sottoscrizione di Azure. Se non si dispone di sottoscrizione di Azure, crearne una gratuitamente prima di iniziare.
Un hub IoT nella sottoscrizione di Azure. Crearne uno con l'interfaccia della riga di comando o il portale di Azure.
Creare un'app per la logica
Creare un'app per la logica e aggiungere un trigger di Griglia di eventi che monitora il gruppo di risorse per la macchina virtuale.
Creare una risorsa di App per la logica
Nel portale di Azure, selezionare +Crea una risorsa, Integrazione e quindi App per la logica.
Completare il modulo per creare una nuova app per la logica che include:
Sottoscrizione in uso
Il gruppo di risorse (o crearne uno nuovo)
Nome dell'app per la logica univoco nella sottoscrizione
Area dell'hub IoT
No per l'abilitazione di Log Analytics
Tipo di piano a consumo
Nota
Il tipo di piano a consumo è l'opzione che abilita la finestra di progettazione dell'app per la logica nell'interfaccia utente. Se si sceglie Standard (impostazione predefinita), è necessario creare un nuovo flusso di lavoro affinché la finestra di progettazione dell'app per la logica diventi disponibile.
Selezionare Rivedi e crea per esaminare la configurazione e quindi selezionare Crea per creare l'app per la logica.
È stata creata ora una risorsa di Azure per l'app per la logica. Dopo che Azure ha distribuito l'app per la logica, selezionare Vai alla risorsa. Progettazione app per la logica mostra i modelli per i modelli comuni in modo da poter iniziare più rapidamente.
Nella finestra di progettazione dell'app per la logica scorrere fino a visualizzare la sezione Modelli , quindi scegliere App per la logica vuota in modo da poter compilare l'app per la logica da zero.
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 e premere Invio.
Selezionare la richiesta Quando viene ricevuta una richiesta HTTP come trigger.
Selezionare Usare il payload di esempio per generare lo schema.
Incollare il codice JSON di esempio seguente nella casella di testo e quindi selezionare Fine.
Questo codice JSON viene usato solo come modello, quindi i valori esatti non sono importanti.
[{ "id": "fbfd8ee1-cf78-74c6-dbcf-e1c58638ccbd", "topic": "/SUBSCRIPTIONS/DEMO5CDD-8DAB-4CF4-9B2F-C22E8A755472/RESOURCEGROUPS/EGTESTRG/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/MYIOTHUB", "subject": "devices/Demo-Device-1", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-07-03T23:20:11.6921933+00:00", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "MYIOTHUB", "deviceId": "48e44e11-1437-4907-83b1-4a8d7e89859e", "moduleId": "" }, "dataVersion": "1", "metadataVersion": "1" }]
Creare una condizione
Le condizioni consentono di eseguire azioni specifiche dopo aver superato tale condizione specifica. Per questo articolo, la condizione consiste nel verificare se eventType è connesso al dispositivo o al dispositivo disconnesso. L'azione eseguita quando eventType è true è la creazione di un documento in Azure Cosmos DB. Questa condizione viene creata nella finestra di progettazione dell'app per la logica.
Selezionare + Nuovo passaggio, quindi la scheda Predefinita , quindi trovare e selezionare il controllo denominato Condizione.
Nella condizione modificare And in Or, perché si vogliono acquisire eventi di connessione o eventi di disconnessione in un'unica analisi.
Selezionare all'interno della casella Scegli un valore e viene visualizzato un popup, che mostra il contenuto dinamico , ovvero i campi che è possibile selezionare.
Scegliere eventType. Il popup si chiude e viene visualizzato Corpo viene inserito automaticamente in Selezionare un output dei passaggi precedenti. Selezionare Condizione per riaprire l'istruzione condizionale.
Mantenere l'oggetto è uguale al valore.
Digitare Microsoft.Devices.DeviceConnected come ultimo valore della riga.
Selezionare + Aggiungi per aggiungere un'altra riga.
Questa seconda riga è simile alla prima riga, ad eccezione degli eventi di disconnessione.
Usare eventType, è uguale a e Microsoft.Devices.DeviceDisconnected per i valori di riga.
Nella finestra di dialogo se true fare clic su Aggiungi un'azione.
Cercare Cosmos DB e selezionare Azure Cosmos DB - Creare o aggiornare il documento (V3)
Viene visualizzato il pannello Crea o aggiorna documento (V3). Immettere questi valori per i campi:
Nome dell'account Azure Cosmos DB: {Aggiungere il nome dell'account}
ID database: ToDoList
ID raccolta: Items
Documento: scegliere
Current item
dall'elenco dei parametri di contenuto dinamicoSalvare l'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 Quando viene ricevuta una richiesta HTTP selezionandola.
Copiare il valore di URL POST HTTP facendo clic sul pulsante di copia che si trova accanto.
Salvare questo URL in modo che sia possibile usarlo 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.
Selezionare Eventi.
Selezionare + Sottoscrizione di eventi.
Compilare i dettagli della sottoscrizione di eventi: specificare un nome descrittivo e selezionare Schema griglia di eventi come schema eventi.
Creare un nome di argomento di sistema per la risorsa hub IoT.
Compilare i campi Tipi di evento. Nell'elenco a discesa selezionare solo Dispositivo connesso e Dispositivo disconnesso dal menu. Fare clic in un punto qualsiasi della schermata per chiudere l'elenco e salvare le selezioni.
Per Dettagli endpoint: come Tipo di endpoint selezionare Webhook, fare clic su Selezione endpoint, incollare l'URL copiato dall'app per la logica e confermare la selezione.
Il modulo dovrebbe avere un aspetto simile all'esempio seguente:
Selezionare Crea per salvare la sottoscrizione di eventi.
Importante
Attendere alcuni minuti per il processo dell'evento prima di eseguire il dispositivo. Ogni volta che i servizi di Azure vengono creati o modificati, avviando il passaggio successivo nella pipeline troppo presto potrebbero causare errori non necessari. Ad esempio, se l'hub IoT non è in uno stato attivo, non sarà pronto per ricevere eventi. Controllare la pagina Panoramica dell'hub IoT per verificare se l'hub IoT è in uno stato attivo o meno. In caso contrario, verrà visualizzato un avviso nella parte superiore della pagina.
Eseguire il dispositivo e osservare gli eventi
Ora che la sottoscrizione dell'evento è configurata, è possibile testare la connessione di un dispositivo.
Registrare un dispositivo nell'hub IoT
Dall'hub IoT selezionare Dispositivi.
Selezionare + Aggiungi dispositivo nella parte superiore del riquadro.
Per ID dispositivo immettere
Demo-Device-1
.Selezionare Salva.
Fare di nuovo clic sul dispositivo. Verranno ora compilate le stringhe di connessione e le chiavi. Copiare e salvare la stringa di connessione primaria per un uso successivo.
Avviare il simulatore Raspberry Pi
È possibile usare il simulatore Web Raspberry Pi per simulare la connessione del dispositivo.
Avviare il simulatore Raspberry Pi
Eseguire un'applicazione di esempio nel simulatore Web Raspberry Pi
Questa app di esempio attiverà un evento connesso al dispositivo.
Nell'area di scrittura del codice sostituire il segnaposto nella riga 15 con la stringa di connessione del dispositivo dell'hub IoT di Azure salvata al termine della sezione precedente.
Eseguire l'applicazione selezionando Esegui.
Dovrebbe essere visibile un output simile al seguente che mostra i dati del sensore e i messaggi inviati all'hub IoT.
È possibile controllare la pagina Panoramica dell'app per la logica per verificare se la logica viene attivata. Si supponga di aver avuto esito positivo o non riuscito. Controllare qui si conosce lo stato dell'app per la logica se è necessaria la risoluzione dei problemi. Si prevede un ritardo di 15-30 secondi da quando viene eseguito il trigger. Se è necessario risolvere i problemi relativi all'app per la logica, vedere questo articolo Risolvere gli errori .
Selezionare Arresta per arrestare il simulatore, che attiva un evento Device Disconnesso . Questo evento verrà registrato nella pagina Panoramica dell'app per la logica, proprio come l'evento di connessione registrato.
È ora stata eseguita un'applicazione di esempio per raccogliere gli eventi di connessione e disconnessione del dispositivo, che passano all'hub IoT.
Osservare gli eventi in Azure Cosmos DB
È possibile visualizzare i risultati dell'app per la logica eseguita nel documento Cosmos DB. Il documento viene visualizzato nell'insieme Items quando si aggiorna la pagina. Ogni evento dello stato della connessione genera un nuovo documento assegnato a un oggetto univoco id
. L'immagine seguente mostra il documento creato all'avvio del dispositivo (connesso). Il tipo di evento connesso è elencato nell'output JSON.
Utilizzare l’interfaccia della riga di comando di Azure
Anziché tramite il portale di Azure, è possibile eseguire le procedure relative all'hub IoT usando l'interfaccia della riga di comando di Azure. Per informazioni dettagliate, vedere le pagine relative all'interfaccia della riga di comando di Azure per la creazione di una sottoscrizione di eventi e la creazione di un dispositivo IoT.
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.
App per la logica
Per non perdere il lavoro fatto, è possibile disabilitare l'app per la logica anziché eliminarla.
Passare all'app per la logica.
Nel pannello Panoramica selezionare Elimina o Disabilita.
Ogni sottoscrizione può avere un unico hub IoT gratuito. Se per questa esercitazione è stato creato un hub gratuito, non è necessario eliminarlo per impedire eventuali addebiti.
Hub IoT o Griglia di eventi
Passare all'hub IoT.
Nel pannello Panoramica selezionare Elimina.
Anche se si mantiene l'hub IoT, può essere opportuno eliminare la sottoscrizione di eventi creata. Nell'hub IoT selezionare Griglia di eventi.
Selezionare la sottoscrizione dell'evento da rimuovere, quindi selezionare Elimina.
Cosmos DB
Per rimuovere un account Azure Cosmos DB dalla portale di Azure, passare alla risorsa e selezionare Elimina account dalla barra dei menu in alto. Vedere le istruzioni dettagliate per eliminare un account di Azure Cosmos DB.
Passaggi successivi
Altre informazioni su come rispondere agli eventi dell'hub IoT usando Griglia di eventi per attivare le azioni
Try the IoT Hub events tutorial (Provare l'esercitazione sugli eventi dell'hub IoT)
Informazioni sulle altre operazioni che è possibile eseguire con Griglia di eventi
Informazioni su come usare Griglia di eventi e Monitoraggio di Azure per monitorare, diagnosticare e risolvere i problemi di connettività del dispositivo a hub IoT
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per