Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra il processo di creazione delle route degli eventi tramite il portale di Azure, i comandi az dt route dell'interfaccia della riga di comando di Azure, le API del piano dati delle route degli eventi e il kit di sviluppo software .NET (C#).
Il routing di notifiche degli eventi da Gemelli digitali di Azure ai servizi downstream o alle risorse di calcolo connesse è un processo in due passaggi: creare endpoint, quindi creare route eventi per inviare dati a tali endpoint. Questo articolo illustra il secondo passaggio, configurando le route per controllare quali eventi vengono recapitati agli endpoint di Gemelli digitali di Azure. Per procedere con questo articolo, dovresti aver già creato gli endpoint.
Prerequisiti
È necessario un account Azure, che può essere configurato gratuitamente
Hai bisogno di un'istanza di Azure Digital Twins nella tua sottoscrizione Azure. Se non si dispone già di un'istanza, è possibile crearne una seguendo la procedura descritta in Configurare un'istanza e l'autenticazione. Disporre a portata di mano dei seguenti valori di configurazione da utilizzare più avanti in questo articolo:
- Nome dell'istanza
- Gruppo di risorse
Questi dettagli sono disponibili nel portale di Azure dopo aver configurato l'istanza.
Creare un endpoint usando le istruzioni riportate in Creare endpoint. In questo articolo viene creata una route per inviare dati a tale endpoint.
Seguire quindi le istruzioni seguenti se si intende usare l'interfaccia della riga di comando di Azure seguendo questa guida.
Preparare l'ambiente per l'interfaccia della riga di comando di Azure
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione ad 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 Eseguire l'autenticazione ad Azure con l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare e gestire 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.
Crea una route eventi
Dopo aver creato un endpoint, è necessario definire una route eventi per inviare effettivamente dati all'endpoint. Queste route consentono agli sviluppatori di collegare il flusso di eventi, attraverso il sistema e fino ai servizi downstream. Una singola route può consentire la selezione di più notifiche e tipi di evento. Per altre informazioni sulle route di eventi, vedere Route di eventi di Gemelli digitali di Azure.
Nota
Assicurarsi di aver creato almeno un endpoint come descritto in Prerequisiti prima di passare alla creazione di una route.
Se hai appena distribuito i tuoi endpoint, verifica che la distribuzione sia stata completata prima di tentare di usarli per un nuovo percorso di eventi. Se la distribuzione della route non riesce perché gli endpoint non sono pronti, attendere alcuni minuti e riprovare.
Se stai scriptando questo flusso, potresti voler considerare la distribuzione includendo 2-3 minuti di tempo di attesa affinché il servizio endpoint completi la distribuzione prima di passare alla configurazione del percorso.
Una definizione di route può contenere questi elementi:
- Nome della route da usare
- Nome dell'endpoint da usare
- Filtro che definisce gli eventi inviati all'endpoint
- Per disabilitare la route in modo che non vengano inviati eventi, usare un valore di filtro
false
- Per abilitare una route senza filtri specifici, usare un valore di filtro
true
- Per informazioni dettagliate su qualsiasi altro tipo di filtro, vedere la sezione Filtrare gli eventi
- Per disabilitare la route in modo che non vengano inviati eventi, usare un valore di filtro
Se non è presente alcun nome di route, non viene instradato alcun messaggio all'esterno di Gemelli digitali di Azure.
Se è presente un nome di route e il filtro è true
, tutti i messaggi vengono indirizzati all'endpoint.
Se è presente un nome di route e viene aggiunto un filtro diverso, i messaggi vengono filtrati in base al filtro.
È possibile creare route di eventi con il portale di Azure, le API del piano dati Event Routes o i comandi della CLI di az dt route. La parte restante di questa sezione illustra il processo di creazione.
Per creare un percorso di eventi, passare alla pagina dei dettagli dell'istanza di Azure Digital Twins nel portale di Azure. È possibile trovare l'istanza immettendone il nome nella barra di ricerca del portale.
Nel menu dell'istanza selezionare Route eventi. Successivamente, nella paginaRoute eventi che segue selezionare + Crea una route eventi.
Nella pagina Crea una route eventi visualizzata scegliere almeno:
- Nome della route nel campo Nome
- L’endpoint da usare per creare la route
Affinché il percorso sia abilitato, è anche necessario aggiungere un filtro per il percorso degli eventi di almeno true
. Se si lascia il valore predefinito di false
, la route verrà creata ma in essa non verrà inviato alcun evento. A tale scopo, attivare o disattivare Editor avanzato per l'abilitazione e scrivere true
nella casella Filtro.
Al termine, selezionare il pulsante Salva per creare la route eventi.
Filtrare gli eventi
Come descritto in precedenza, le rotte hanno un campo filtro. Se il valore del filtro nella route è false
, nessun evento viene inviato all'endpoint.
Dopo aver abilitato un filtro minimo di true
, gli endpoint riceveranno diversi tipi di eventi da Gemelli digitali di Azure:
- Telemetria generata da gemelli digitali con l'API del servizio Gemelli digitali di Azure
- Notifiche di modifica delle proprietà del dispositivo gemello, attivate in caso di modifiche alle proprietà per qualsiasi gemello nell'istanza di Gemelli digitali di Azure
- Eventi del ciclo di vita, generati quando vengono creati o eliminati gemelli o relazioni
È possibile limitare i tipi di eventi inviati definendo un filtro più specifico.
Nota
I filtri fanno distinzione tra maiuscole e minuscole e devono corrispondere al caso del payload. Per i filtri di telemetria, la combinazione di maiuscole e minuscole deve corrispondere alla combinazione di maiuscole e minuscole nei dati di telemetria inviati dal dispositivo.
Per aggiungere un filtro eventi durante la creazione di una route eventi, usare la sezione Aggiungi un filtro di route eventi della pagina Crea route eventi.
È possibile selezionare alcune semplici opzioni di filtro di base comuni oppure usare opzioni di filtro avanzate per scrivere filtri personalizzati.
Usare i filtri di base
Per usare i filtri di base, espandere l'opzione Tipi di evento e selezionare le caselle di controllo corrispondenti agli eventi da inviare all'endpoint.
In questo modo, la casella di testo del filtro viene popolata automaticamente con il testo del filtro selezionato:
Usare i filtri avanzati
È anche possibile usare l'opzione filtro avanzato per scrivere filtri personalizzati.
Per creare una route eventi con opzioni di filtro avanzate, attivare l'interruttore dell'editor avanzato per abilitarla. Sarà quindi possibile scrivere filtri eventi personalizzati nella casella Filtro:
Filtri di route supportati
Di seguito sono elencati i filtri di route supportati.
Nome filtro | Descrizione | Filtrare lo schema del testo | Valori supportati |
---|---|---|---|
True / false | Consente di creare una route senza filtri o disabilitare una route in modo che non vengano inviati eventi | <true/false> |
true = la route è abilitata senza filtri false = la route è disabilitata |
TIPO | Il tipo di evento che scorre nell'istanza di Gemelli digitali | type = '<event-type>' |
Ecco i possibili valori del tipo di evento: Microsoft.DigitalTwins.Twin.Create Microsoft.DigitalTwins.Twin.Delete Microsoft.DigitalTwins.Twin.Update Microsoft.DigitalTwins.Relationship.Create Microsoft.DigitalTwins.Relationship.Update Microsoft.DigitalTwins.Relationship.Delete microsoft.iot.telemetry |
Origine | Nome dell'istanza di Gemelli digitali di Azure | source = '<host-name>' |
Ecco i possibili valori del nome host: Per le notifiche: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net Per i dati di telemetria: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID> |
Oggetto | Descrizione dell'evento nel contesto dell'origine dell'evento | subject = '<subject>' |
Ecco i possibili valori oggetto: Per le notifiche: l'oggetto è <twin-ID> o un formato URI per soggetti, identificati in modo univoco da più parti o ID: <twin-ID>/relationships/<relationship-ID> Per i dati di telemetria: l'oggetto è il percorso del componente (se i dati di telemetria vengono generati da un componente gemello), ad esempio comp1.comp2 . Se i dati di telemetria non vengono generati da un componente, il relativo campo oggetto è vuoto. |
Schema dei dati | ID modello DTDL | dataschema = '<model-dtmi-ID>' |
Per i dati di telemetria: lo schema dei dati è l'ID modello del gemello o del componente che genera i dati di telemetria. Ad esempio, dtmi:example:com:floor4;2 Per le notifiche (creazione/eliminazione): è possibile accedere allo schema dei dati nel corpo della notifica all'indirizzo $body.$metadata.$model . Per le notifiche (aggiornamento): è possibile accedere allo schema dei dati nel corpo della notifica all'indirizzo $body.modelId |
Tipo di contenuto | Tipo di contenuto del valore di dati | datacontenttype = '<content-type>' |
Il tipo di contenuto è application/json |
Versione della specifica | Versione dello schema di eventi in uso | specversion = '<version>' |
La versione deve essere 1.0 . Questo valore indica lo schema CloudEvents versione 1.0 |
Corpo della notifica | Fare riferimento a qualsiasi proprietà nel campo data di una notifica |
$body.<property> |
Per esempi di notifiche, vedere Notifiche degli eventi. È possibile fare riferimento a qualsiasi proprietà nel campo data tramite $body |
Nota
Digital Twins di Azure attualmente non supporta il filtraggio degli eventi in base ai campi all'interno di un array. Questa limitazione include i filtri sulle proprietà all'interno di una sezione patch
di una notifica di modifica del gemello digitale.
I tipi di dati seguenti sono supportati come valori restituiti dai riferimenti ai dati precedenti:
Tipo di dati | Esempio |
---|---|
string | STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor') CONTAINS(subject, '<twin-ID>') |
Numero intero | $body.errorCode > 200 |
Doppio | $body.temperature <= 5.5 |
Bool | $body.poweredOn = true |
Nullo | $body.prop != null |
Per la definizione dei filtri di route sono supportati gli operatori seguenti:
Famiglia | Operatori | Esempio |
---|---|---|
Logico | E, O ( ) | (type != 'microsoft.iot.telemetry' OR datacontenttype = 'application/json') OR (specversion != '1.0') |
Confronto | <, <=, >, >=, =, != | $body.temperature <= 5.5 |
Per la definizione dei filtri di route sono supportate le funzioni seguenti:
Funzione | Descrizione | Esempio |
---|---|---|
INIZIA_CON(x,y) | Restituisce true se il valore x inizia con la stringa y . |
STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor') |
ENDS_WITH(x,y) | Restituisce true se il valore x termina con la stringa y . |
ENDS_WITH($body.$metadata.$model, 'floor;1') |
CONTIENE(x,y) | Restituisce true se il valore x contiene la stringa y . |
CONTAINS(subject, '<twin-ID>') |
Quando si implementa o si aggiorna un filtro, la modifica potrebbe richiedere alcuni minuti per essere riflessa nella pipeline di dati.
Monitorare i percorsi degli eventi
Le metriche di routing, ad esempio conteggio, latenza e frequenza degli errori, possono essere visualizzate nel portale di Azure.
Per informazioni sulla visualizzazione e la gestione delle metriche con Monitoraggio di Azure, vedere Analizzare le metriche con Esplora metriche di Monitoraggio di Azure. Per un elenco completo delle metriche di routing disponibili per Gemelli digitali di Azure, vedere Metriche di routing.
Passaggi successivi
Leggere i differenti tipi di messaggi di evento che è possibile ricevere: