Condividi tramite


Route di eventi di Gemelli digitali di Azure

Questo articolo descrive il processo usato da Gemelli digitali di Azure per inviare i dati degli eventi, sia per il routing degli eventi internamente all'interno di Gemelli digitali di Azure, sia per l'invio di dati degli eventi esternamente ai servizi downstream o alle risorse di calcolo connesse all'esterno del servizio.

Il routing delle notifiche degli eventi da Gemelli digitali di Azure è un processo in due passaggi: creare endpoint, quindi creare route di eventi per inviare dati a tali endpoint. Questo articolo illustra in modo più dettagliato ognuno di questi concetti. Spiega anche cosa accade quando un endpoint non riesce a recapitare un evento nel tempo (un processo noto come messaggi non recapitabili).

Routing degli eventi basato su URL

Esistono due scenari principali per l'invio di dati di Gemelli digitali di Azure e le route di eventi vengono usate per eseguire entrambe le operazioni:

  • Invio di dati degli eventi da un gemello nel grafico di Gemelli digitali di Azure a un altro. Ad esempio, quando una proprietà di un gemello digitale cambia, è possibile inviare una notifica e aggiornare un altro gemello digitale in base ai dati aggiornati.
  • Invio di dati all'esterno di Gemelli digitali di Azure ai servizi dati downstream per una maggiore archiviazione o elaborazione. Ad esempio, se si usa già Mappe di Azure, è possibile contribuire ai dati di Gemelli digitali di Azure per migliorare la soluzione con la modellazione integrata o le query.

Per qualsiasi destinazione evento, una route di eventi funziona inviando i dati degli eventi da Gemelli digitali di Azure a endpoint personalizzati nelle sottoscrizioni. Sono attualmente supportati tre servizi di Azure per gli endpoint: Hub eventi, Griglia di eventi e bus di servizio. Ognuno di questi servizi di Azure può essere connesso ad altri servizi e funge da middleman, inviando dati alle destinazioni finali, ad esempio Mappe di Azure o di nuovo in Gemelli digitali di Azure per gli aggiornamenti del grafo dipendente.

Il diagramma seguente illustra il flusso dei dati degli eventi tramite una soluzione IoT più grande, che include l'invio di dati di Gemelli digitali di Azure tramite endpoint ad altri servizi di Azure, nonché di nuovo in Gemelli digitali di Azure:

Diagramma di Gemelli digitali di Azure che instradano i dati tramite endpoint a diversi servizi downstream.

Per i dati in uscita all'esterno di Gemelli digitali di Azure, le destinazioni downstream tipiche per le route di eventi sono Mappe di Azure, archiviazione e soluzioni analitica. Gemelli digitali di Azure implementa almeno una volta il recapito per i dati generati ai servizi in uscita.

Per il routing degli eventi interni di Gemelli digitali all'interno della stessa soluzione di Gemelli digitali di Azure, passare alla sezione successiva.

Instradare gli eventi interni di Gemelli digitali

Le route di eventi sono il meccanismo usato per gestire gli eventi all'interno del grafo del gemello, inviando dati da gemelli digitali a gemelli digitali. Questo tipo di gestione degli eventi viene eseguito connettendo le route degli eventi tramite Griglia di eventi alle risorse di calcolo, ad esempio Funzioni di Azure. Queste funzioni definiscono quindi il modo in cui i gemelli devono ricevere e rispondere agli eventi.

Quando una risorsa di calcolo vuole modificare il grafo del gemello in base a un evento ricevuto tramite route eventi, è utile sapere in anticipo quale gemello deve modificare. Il messaggio di evento contiene anche l'ID del gemello di origine che ha inviato il messaggio, in modo che la risorsa di calcolo possa usare query o attraversare relazioni per trovare un gemello di destinazione per l'operazione desiderata.

La risorsa di calcolo deve anche stabilire le autorizzazioni di sicurezza e accesso in modo indipendente.

Per informazioni dettagliate sul processo di configurazione di una funzione di Azure per elaborare gli eventi di Gemelli digitali, vedere Configurare la gestione degli eventi da gemello a gemello.

Creazione di endpoint

Per definire una route eventi, gli sviluppatori devono innanzitutto definire gli endpoint. Un endpoint è una destinazione esterna a Gemelli digitali di Azure che supporta una connessione di route. Le destinazioni supportate includono:

  • Argomenti personalizzati di Griglia di eventi
  • Hub eventi di
  • Bus di servizio

Per creare un endpoint, è possibile usare le API REST di Gemelli digitali di Azure, i comandi dell'interfaccia della riga di comando o il portale di Azure.

Quando si definisce un endpoint, è necessario specificare:

  • Il nome dell'endpoint
  • Tipo di endpoint (Griglia di eventi, Hub eventi o bus di servizio)
  • Stringa di connessione primaria e stringa di connessione secondaria da autenticare
  • Percorso dell'argomento dell'endpoint, ad esempio your-topic.westus2.eventgrid.azure.net

Facoltativamente, è possibile scegliere di creare l'endpoint con l'autenticazione basata sull'identità, per usare l'endpoint con un'identità gestita assegnata dal sistema o assegnata dall'utente. Questa opzione è disponibile solo per Hub eventi ed endpoint di tipo Bus di servizio (non è supportato per Griglia di eventi).

Le API endpoint disponibili nel piano di controllo sono:

  • Creare un endpoint
  • Ottenere l'elenco degli endpoint
  • Ottenere l'endpoint in base al nome
  • Eliminare l'endpoint in base al nome

Per istruzioni dettagliate sulla creazione di un endpoint, vedere Creare endpoint.

Creazione di route di eventi

Per creare una route di eventi, è possibile usare le API REST di Gemelli digitali di Azure, i comandi dell'interfaccia della riga di comando o il portale di Azure.

Di seguito è riportato un esempio di creazione di una route di eventi all'interno di un'applicazione client tramite la chiamata CreateOrReplaceEventRouteAsync .NET (C#) SDK:

string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
  1. Prima di tutto, viene creato un oggetto DigitalTwinsEventRoute e il costruttore prende il nome di un endpoint. Questo campo endpointName identifica un endpoint, ad esempio Hub eventi, Griglia di eventi o bus di servizio. Questi endpoint devono essere creati nella sottoscrizione e collegati a Gemelli digitali di Azure usando le API del piano di controllo prima di effettuare questa chiamata di registrazione.

  2. L'oggetto route eventi include anche un campo Filtro , che può essere usato per limitare i tipi di eventi che seguono questa route. Un filtro di true abilita la route senza filtri aggiuntivi (un filtro di false disabilita la route).

  3. Questo oggetto route di eventi viene quindi passato a CreateOrReplaceEventRouteAsync, insieme a un nome per la route.

Suggerimento

Tutte le funzioni SDK sono disponibili in versioni sincrone e asincrone.

Per istruzioni dettagliate sulla creazione di route di eventi, vedere Creare route e filtri.

Eventi relativi ai messaggi non recapitabili

Quando un endpoint non può recapitare un evento entro un determinato periodo di tempo o dopo aver tentato di recapitare l'evento diverse volte, può inviare l'evento non recapitato a un account di archiviazione. Questo processo è noto come inserimento nella coda di eventi non recapitabili. Gemelli digitali di Azure riceve un evento non recapitabili quando viene soddisfatta una delle condizioni seguenti:

  • L'evento non viene recapitato entro il periodo di durata
  • Il numero di tentativi di recapito dell'evento ha superato il limite

Se viene soddisfatta una delle condizioni, l'evento viene eliminato o non inserito nella coda di eventi non recapitati. Per impostazione predefinita, ogni endpoint non attiva i messaggi non recapitabili. Per abilitarlo, è necessario specificare che un account di archiviazione deve contenere gli eventi non recapitati durante la creazione dell'endpoint. Per risolvere le operazioni di recapito, si può poi eseguire il pull degli eventi da questo account di archiviazione.

Prima di impostare la posizione dei messaggi non recapitabili, è necessario avere un account di archiviazione con un contenitore. Specificare l'URL per questo contenitore durante la creazione dell'endpoint. Il messaggi non recapitabili viene fornito come URL del contenitore con un token di firma di accesso condiviso. Tale token richiede solo l'autorizzazione write per il contenitore di destinazione all'interno dell'account di archiviazione. L'URL completamente formato sarà nel formato seguente: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>

Per altre informazioni sui token di firma di accesso condiviso, vedere: Concedere l'accesso limitato alle risorse di Archiviazione di Azure usando firme di accesso condiviso (SAS)

Per informazioni su come configurare un endpoint con messaggi non recapitabili, vedere Opzioni endpoint: messaggi non recapitabili.

Tipi di messaggi di evento

Diversi tipi di eventi nell'hub IoT e Gemelli digitali di Azure producono diversi tipi di messaggi di notifica, come descritto di seguito.

Tipo di notifica Nome di origine routing Generato da...
Notifica di modifica del gemello digitale Notifica di modifica del gemello digitale qualsiasi modifica della proprietà del gemello digitale
Notifica del ciclo di vita del gemello digitale Notifica del ciclo di vita del gemello digitale qualsiasi operazione di creazione o eliminazione di gemelli digitali
Notifica di modifica della relazione del gemello digitale Notifica di modifica della relazione del gemello digitale qualsiasi modifica della relazione con gemelli digitali
Messaggi di telemetria del gemello digitale Messaggi di telemetria qualsiasi messaggio di telemetria

Passaggi successivi

Continuare con le istruzioni dettagliate per la configurazione di endpoint e route di eventi:

In alternativa, seguire questa procedura dettagliata per configurare una funzione di Azure per la gestione degli eventi da gemello a gemello all'interno di Gemelli digitali di Azure: