Condividi tramite


Monitorare Gemelli digitali di Azure con metriche, avvisi e diagnostica

Gemelli digitali di Azure si integra con Monitoraggio di Azure per fornire metriche e informazioni di diagnostica che è possibile usare per monitorare le risorse di Gemelli digitali di Azure. Le metriche sono abilitate per impostazione predefinita e forniscono informazioni sullo stato delle risorse di Gemelli digitali di Azure nella sottoscrizione di Azure. Gli avvisi possono inviare notifiche proattive quando vengono trovate determinate condizioni nei dati delle metriche. È anche possibile raccogliere i log di diagnostica per l'istanza del servizio per monitorare le prestazioni, l'accesso e altri dati.

Queste funzionalità di monitoraggio consentono di valutare l'integrità complessiva del servizio Gemelli digitali di Azure e le risorse connesse. È possibile usarli per comprendere cosa accade nell'istanza di Gemelli digitali di Azure e analizzare le cause radice dei problemi senza dover contattare il supporto tecnico di Azure.

È possibile accedervi dal portale di Azure, raggruppati sotto l'intestazione Monitoraggio per la risorsa Gemelli digitali di Azure.

Screenshot del portale di Azure che mostra le opzioni di monitoraggio.

Metriche e avvisi

Per informazioni generali sulla visualizzazione delle metriche delle risorse di Azure, vedere Introduzione a Esplora metriche nella documentazione di Monitoraggio di Azure. Per informazioni generali sulla configurazione degli avvisi per le metriche di Azure, vedere Creare una nuova regola di avviso.

Nella parte restante di questa sezione vengono descritte le metriche rilevate da ogni istanza di Gemelli digitali di Azure e il modo in cui ogni metrica è correlata allo stato complessivo dell'istanza.

Metriche per il rilevamento dei limiti del servizio

È possibile configurare queste metriche per tenere traccia quando si sta raggiungendo un limite di servizio pubblicato per alcuni aspetti della soluzione.

Per configurare il rilevamento, usare la funzionalità avvisi in Monitoraggio di Azure. È possibile definire le soglie per queste metriche in modo da ricevere un avviso quando una metrica raggiunge una determinata percentuale del rispettivo limite pubblicato.

Metric Nome visualizzato della metrica Unità Tipo di aggregazione Descrizione Dimensioni
TwinCount Conteggio gemelli (anteprima) Count Totale Numero totale di gemelli nell'istanza di Gemelli digitali di Azure. Usare questa metrica per determinare se si sta raggiungendo il limite del servizio per il numero massimo di gemelli consentiti per ogni istanza. None
ModelCount Conteggio modelli (anteprima) Count Totale Numero totale di modelli nell'istanza di Gemelli digitali di Azure. Usare questa metrica per determinare se si sta raggiungendo il limite del servizio per il numero massimo di modelli consentiti per ogni istanza. None

Metriche per le richieste API

Le metriche che hanno a che fare con le richieste API:

Metric Nome visualizzato della metrica Unità Tipo di aggregazione Descrizione Dimensioni
ApiRequests Richieste API Count Totale Numero di richieste API effettuate per le operazioni di lettura, scrittura, eliminazione e query di Gemelli digitali. Autenticazione,
Operazione,
Protocollo,
Codice di stato,
Classe del codice di stato,
Testo dello stato
ApiRequestsFailureRate Frequenza di errore delle richieste API Percentuale Media Percentuale di richieste API ricevute dal servizio per l'istanza che forniscono un codice di risposta di errore interno (500) per le operazioni di lettura, scrittura, eliminazione e query di Gemelli digitali. Autenticazione,
Operazione,
Protocollo,
Codice di stato,
Classe del codice di stato,
Testo dello stato
ApiRequestsLatency Latenza delle richieste API Millisecondi Media Tempo di risposta per le richieste API. Questo valore si riferisce al momento in cui la richiesta viene ricevuta da Gemelli digitali di Azure fino a quando il servizio non invia un risultato positivo/negativo per le operazioni di lettura, scrittura, eliminazione e query di Gemelli digitali. Autenticazione,
Operazione,
Protocollo

Metriche di fatturazione

Le metriche che hanno a che fare con la fatturazione:

Metric Nome visualizzato della metrica Unità Tipo di aggregazione Descrizione Dimensioni
BillingApiOperations Operazioni API di fatturazione Count Totale Metrica di fatturazione per il conteggio di tutte le richieste API effettuate nel servizio Gemelli digitali di Azure. ID contatore
BillingMessagesProcessed Messaggi di fatturazione elaborati Count Totale Metrica di fatturazione per il numero di messaggi inviati da Gemelli digitali di Azure agli endpoint esterni.

Per essere considerato un singolo messaggio a scopo di fatturazione, un payload non deve essere maggiore di 1 kB. I payload superiori a questo limite verranno conteggiati come messaggi aggiuntivi in incrementi di 1 kB (quindi un messaggio compreso tra 1 kB e 2 kB verrà conteggiato come 2 messaggi, tra 2 kB e 3 kB sarà di 3 messaggi e così via).
Questa restrizione si applica anche alle risposte, quindi una chiamata che restituisce 1,5 kB nel corpo della risposta, ad esempio, verrà fatturata come 2 operazioni.
ID contatore
BillingQueryUnits Unità query di fatturazione Count Totale Numero di unità di query, misura calcolata internamente dell'utilizzo delle risorse del servizio, utilizzata per eseguire query. È disponibile anche un'API helper per misurare le unità di query: Classe QueryChargeHelper ID contatore

Per altre informazioni sulla modalità di fatturazione di Gemelli digitali di Azure, vedere Prezzi di Gemelli digitali di Azure.

Metriche in ingresso

Metriche relative ai dati in ingresso:

Metric Nome visualizzato della metrica Unità Tipo di aggregazione Descrizione Dimensioni
IngressEvents Eventi in ingresso Count Totale Numero di eventi di telemetria dei dispositivi in ingresso in Gemelli digitali di Azure. Risultato
IngressEventsFailureRate Percentuale di errori eventi in ingresso Percentuale Media Percentuale di eventi di telemetria del dispositivo in ingresso per cui il servizio restituisce un codice di risposta di errore interno (500). Risultato
IngressEventsLatency Latenza eventi in ingresso Millisecondi Media Data e ora in cui arriva un evento quando è pronto per l'uscita da Gemelli digitali di Azure, a quel punto il servizio invia un risultato di esito positivo/negativo. Risultato

Metriche delle operazioni in blocco (dalle API processi)

Le metriche che hanno a che fare con le operazioni bulk dalle API processi:

Metric Nome visualizzato della metrica Unità Tipo di aggregazione Descrizione Dimensioni
ImportJobLatency Importare la latenza del processo Millisecondi Media Tempo totale impiegato per il completamento di un processo di importazione. Operazione,
Autenticazione,
Protocollo
ImportJobEntityCount Importa numero di entità processo Count Totale Numero di gemelli, modelli o relazioni elaborati da un processo di importazione. Operazione,
Risultato
DeleteJobLatency Elimina latenza processo Millisecondi Media Tempo totale impiegato per il completamento di un processo di eliminazione. Operazione,
Autenticazione,
Protocollo
DeleteJobEntityCount Elimina conteggio entità processo Count Totale Numero di modelli, gemelli e/o relazioni eliminati come parte di un processo di eliminazione. Operazione,
Risultato

Metriche di routing

Metriche relative al routing:

Metric Nome visualizzato della metrica Unità Tipo di aggregazione Descrizione Dimensioni
MessagesRouted Messaggi instradati Count Totale Numero di messaggi instradati a un servizio di Azure endpoint, ad esempio Hub eventi, bus di servizio o Griglia di eventi. Tipo di endpoint,
Risultato
RoutingFailureRate Percentuale di errori di routing Percentuale Media Percentuale di eventi che generano un errore durante l'instradamento da Gemelli digitali di Azure a un servizio di Azure endpoint, ad esempio Hub eventi, bus di servizio o Griglia di eventi. Tipo di endpoint,
Risultato
RoutingLatency Latenza di routing Millisecondi Media Tempo trascorso tra un evento indirizzato da Gemelli digitali di Azure a quando viene pubblicato nel servizio di Azure endpoint, ad esempio Hub eventi, bus di servizio o Griglia di eventi. Tipo di endpoint,
Risultato

Dimensioni delle metriche

Le dimensioni consentono di identificare altri dettagli sulle metriche. Alcune delle metriche di routing forniscono informazioni per ogni endpoint. La tabella seguente elenca i valori possibili per queste dimensioni.

Dimensione Valori
Autenticazione OAuth
Operazione (per le richieste API) Microsoft.DigitalTwins/digitaltwins/delete,
Microsoft.DigitalTwins/digitaltwins/write,
Microsoft.DigitalTwins/digitaltwins/read,
Microsoft.DigitalTwins/eventroutes/read,
Microsoft.DigitalTwins/eventroutes/write,
Microsoft.DigitalTwins/eventroutes/delete,
Microsoft.DigitalTwins/models/read,
Microsoft.DigitalTwins/models/write,
Microsoft.DigitalTwins/models/delete,
Microsoft.DigitalTwins/query/action
Tipo di endpoint Griglia di eventi,
Hub eventi,
Bus di servizio
Protocollo HTTPS
Risultato Operazione riuscita,
Errore
Codice di stato 200, 404, 500 e così via.
Classe del codice di stato 2xx, 4xx, 5xx e così via.
Testo dello stato Errore interno del server, Non trovato e così via.

Log di diagnostica

Per informazioni generali sulle impostazioni di diagnostica di Azure, tra cui come abilitarle, vedere Impostazioni di diagnostica in Monitoraggio di Azure. Per informazioni sull'esecuzione di query sui log di diagnostica con Log Analytics, vedere Panoramica di Log Analytics in Monitoraggio di Azure.

Nella parte restante di questa sezione vengono descritte le categorie di log di diagnostica che Possono essere raccolte da Gemelli digitali di Azure e i relativi schemi.

Categorie di log

Di seguito sono fornite informazioni dettagliate sulle categorie dei log raccolti da Gemelli digitali di Azure.

Categoria di log Descrizione
ADTModelsOperation Registrare tutte le chiamate API correlate ai modelli
ADTQueryOperation Registrare tutte le chiamate API correlate alle query
ADTEventRoutesOperation Registrare tutte le chiamate API correlate a Route eventi e uscita di eventi da Gemelli digitali di Azure a un servizio endpoint come Griglia di eventi, Hub eventi e bus di servizio
ADTDigitalTwinsOperation Registrare tutte le chiamate API correlate a singoli gemelli

Ogni categoria di log è costituita da operazioni di scrittura, lettura, eliminazione e azione. Queste categorie eseguono il mapping alle chiamate API REST come indicato di seguito:

Tipo di evento Operazioni dell'API REST
Scrittura PUT e PATCH
Lettura GET
Elimina DELETE
Azione POST

Ecco un elenco completo delle operazioni e delle chiamate API REST di Gemelli digitali di Azure corrispondenti registrate in ogni categoria.

Nota

Ogni categoria di log contiene diverse operazioni e chiamate API REST. Nella tabella seguente, ogni categoria di log è associata a tutte le operazioni e le chiamate API REST sotto di essa fino alla categoria di log successiva.

Categoria di log Operazione Chiamate API REST e altri eventi
ADTModelsOperation Microsoft.DigitalTwins/models/write API di aggiornamento dei modelli di Gemelli digitali
Microsoft.DigitalTwins/models/read Modelli di Gemelli digitali Ottenere per ID ed elencare le API
Microsoft.DigitalTwins/models/delete API di eliminazione dei modelli di Gemelli digitali
Microsoft.DigitalTwins/models/action Aggiunta di API per i modelli di Gemelli digitali
ADTQueryOperation Microsoft.DigitalTwins/query/action Query Twins API
ADTEventRoutesOperation Microsoft.DigitalTwins/eventroutes/write Aggiunta API Route di eventi
Microsoft.DigitalTwins/eventroutes/read Route di eventi Get By ID (ID) ed List APIs (API elenco)
Microsoft.DigitalTwins/eventroutes/delete API di eliminazione delle route di eventi
Microsoft.DigitalTwins/eventroutes/action Errore durante il tentativo di pubblicare eventi in un servizio endpoint (non una chiamata API)
ADTDigitalTwinsOperation Microsoft.DigitalTwins/digitaltwins/write Aggiunta di Gemelli digitali, aggiunta relazione, aggiornamento, componente di aggiornamento
Microsoft.DigitalTwins/digitaltwins/read Digital Twins Get By ID, Get Component, Get Relationship by ID, List Incoming Relationships, List Relationships
Microsoft.DigitalTwins/digitaltwins/delete Eliminazione di Gemelli digitali, eliminazione relazione
Microsoft.DigitalTwins/digitaltwins/action Digital Twins Send Component Telemetry, Send Telemetry

Schemi di log

Ogni categoria di log ha uno schema che definisce come vengono segnalati gli eventi in tale categoria. Ogni singola voce di log viene archiviata come testo e formattata come BLOB JSON. Di seguito sono illustrati i campi nel log e nel corpo JSON di esempio per ogni tipo di log.

ADTDigitalTwinsOperation, ADTModelsOperation e ADTQueryOperation usano uno schema di log dell'API coerente. ADTEventRoutesOperation estende lo schema per contenere un campo endpointName nelle proprietà.

Schemi di log delle API

Questo schema di log è coerente per ADTDigitalTwinsOperation, ADTModelsOperation, ADTQueryOperation. Lo stesso schema viene usato anche per ADTEventRoutesOperation, ad eccezione del nome dell'operazione Microsoft.DigitalTwins/eventroutes/action ( per altre informazioni su tale schema, vedere la sezione successiva, Schemi di log in uscita).

Lo schema contiene informazioni pertinenti alle chiamate API a un'istanza di Gemelli digitali di Azure.

Di seguito sono illustrati i campi e le descrizioni delle proprietà per i log delle API.

Nome campo Tipo di dati Descrizione
Time Data/Ora Data e ora in cui si è verificato questo evento, in formato UTC
ResourceId String ID risorsa di Azure Resource Manager per la risorsa in cui si è verificato l'evento
OperationName String Tipo di azione eseguita durante l'evento
OperationVersion String Versione dell'API usata durante l'evento
Category String Tipo di risorsa da generare
ResultType String Risultato dell'evento
ResultSignature String Codice di stato HTTP per l'evento
ResultDescription String Altri dettagli sull'evento
DurationMs String Tempo necessario per eseguire l'evento in millisecondi
CallerIpAddress String Indirizzo IP di origine mascherato per l'evento
CorrelationId GUID Identificatore univoco dell'evento
ApplicationId GUID ID applicazione usato nell'autorizzazione di connessione
Level Int Gravità della registrazione dell'evento
Location String Area in cui si è verificato l'evento
RequestUri URI Endpoint usato durante l'evento
TraceId String TraceId, come parte del contesto di traccia di W3C. ID dell'intera traccia usata per identificare in modo univoco una traccia distribuita tra sistemi.
SpanId String SpanId come parte del contesto di traccia di W3C. ID di questa richiesta nella traccia.
ParentId String ParentId come parte del contesto di traccia di W3C. Una richiesta senza un ID padre è la radice della traccia.
TraceFlags String TraceFlags come parte del contesto di traccia di W3C. Controlla i flag di traccia, ad esempio campionamento, livello di traccia e così via.
TraceState String TraceState come parte del contesto di traccia di W3C. Informazioni aggiuntive sull'identificazione della traccia specifiche del fornitore per estendersi su sistemi di traccia distribuiti diversi.

Di seguito sono riportati i corpi JSON di esempio per questi tipi di log.

ADTDigitalTwinsOperation
{
  "time": "2020-03-14T21:11:14.9918922Z",
  "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/digitaltwins/write",
  "operationVersion": "2020-10-31",
  "category": "DigitalTwinOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": 8,
  "callerIpAddress": "13.68.244.*",
  "correlationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/digitaltwins/factory-58d81613-2e54-4faa-a930-d980e6e2a884?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTModelsOperation
{
  "time": "2020-10-29T21:12:24.2337302Z",
  "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/models/write",
  "operationVersion": "2020-10-31",
  "category": "ModelsOperation",
  "resultType": "Success",
  "resultSignature": "201",
  "resultDescription": "",
  "durationMs": "80",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/Models?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTQueryOperation
{
  "time": "2020-12-04T21:11:44.1690031Z",
  "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/query/action",
  "operationVersion": "2020-10-31",
  "category": "QueryOperation",
  "resultType": "Success",
  "resultSignature": "200",
  "resultDescription": "",
  "durationMs": "314",
  "callerIpAddress": "13.68.244.*",
  "correlationId": "cccc2222-dd33-4444-55ee-666666ffffff",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/query?api-version=2020-10-31",
  "properties": {},
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
}
ADTEventRoutesOperation

Di seguito è riportato un esempio di corpo JSON per un oggetto ADTEventRoutesOperation che non è di tipo Microsoft.DigitalTwins/eventroutes/action (per altre informazioni su tale schema, vedere la sezione successiva, Schemi di log in uscita).

  {
    "time": "2020-10-30T22:18:38.0708705Z",
    "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
    "operationName": "Microsoft.DigitalTwins/eventroutes/write",
    "operationVersion": "2020-10-31",
    "category": "EventRoutesOperation",
    "resultType": "Success",
    "resultSignature": "204",
    "resultDescription": "",
    "durationMs": 42,
    "callerIpAddress": "212.100.32.*",
    "correlationId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
    "identity": {
      "claims": {
        "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
      }
    },
    "level": "4",
    "location": "southcentralus",
    "uri": "https://myinstancename.api.scus.digitaltwins.azure.net/EventRoutes/egressRouteForEventHub?api-version=2020-10-31",
    "properties": {},
    "traceContext": {
      "traceId": "95ff77cfb300b04f80d83e64d13831e7",
      "spanId": "b630da57026dd046",
      "parentId": "9f0de6dadae85945",
      "traceFlags": "01",
      "tracestate": "k1=v1,k2=v2"
    }
  },

Schemi di log di uscita

L'esempio seguente è lo schema per i logADTEventRoutesOperation specifici del nome dell'operazione Microsoft.DigitalTwins/eventroutes/action. Questi contengono dettagli correlati alle eccezioni e alle operazioni API relative agli endpoint in uscita connessi a un'istanza di Gemelli digitali di Azure.

Nome campo Tipo di dati Descrizione
Time Data/Ora Data e ora in cui si è verificato questo evento, in formato UTC
ResourceId String ID risorsa di Azure Resource Manager per la risorsa in cui si è verificato l'evento
OperationName String Tipo di azione eseguita durante l'evento
Category String Tipo di risorsa da generare
ResultDescription String Altri dettagli sull'evento
CorrelationId GUID Il cliente ha fornito un identificatore univoco per l'evento
ApplicationId GUID ID applicazione usato nell'autorizzazione di connessione
Level Int Gravità della registrazione dell'evento
Location String Area in cui si è verificato l'evento
TraceId String TraceId, come parte del contesto di traccia di W3C. ID dell'intera traccia usata per identificare in modo univoco una traccia distribuita tra sistemi.
SpanId String SpanId come parte del contesto di traccia di W3C. ID di questa richiesta nella traccia.
ParentId String ParentId come parte del contesto di traccia di W3C. Una richiesta senza un ID padre è la radice della traccia.
TraceFlags String TraceFlags come parte del contesto di traccia di W3C. Controlla i flag di traccia, ad esempio campionamento, livello di traccia e così via.
TraceState String TraceState come parte del contesto di traccia di W3C. Informazioni aggiuntive sull'identificazione della traccia specifiche del fornitore per estendersi su sistemi di traccia distribuiti diversi.
EndpointName String Nome dell'endpoint in uscita creato in Gemelli digitali di Azure

Ecco un esempio di corpo JSON per un oggetto ADTEventRoutesOperation di tipo Microsoft.DigitalTwins/eventroutes/action.

{
  "time": "2020-11-05T22:18:38.0708705Z",
  "resourceId": "/SUBSCRIPTIONS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.DIGITALTWINS/DIGITALTWINSINSTANCES/MYINSTANCENAME",
  "operationName": "Microsoft.DigitalTwins/eventroutes/action",
  "operationVersion": "",
  "category": "EventRoutesOperation",
  "resultType": "",
  "resultSignature": "",
  "resultDescription": "Unable to send EventHub message to [myPath] for event Id [f6f45831-55d0-408b-8366-058e81ca6089].",
  "durationMs": -1,
  "callerIpAddress": "",
  "correlationId": "dddd3333-ee44-5555-66ff-777777aaaaaa",
  "identity": {
    "claims": {
      "appId": "00001111-aaaa-2222-bbbb-3333cccc4444"
    }
  },
  "level": "4",
  "location": "southcentralus",
  "uri": "",
  "properties": {
    "endpointName": "myEventHub"
  },
  "traceContext": {
    "traceId": "95ff77cfb300b04f80d83e64d13831e7",
    "spanId": "b630da57026dd046",
    "parentId": "9f0de6dadae85945",
    "traceFlags": "01",
    "tracestate": "k1=v1,k2=v2"
  }
},

Passaggi successivi

Altre informazioni su Monitoraggio di Azure e sulle relative funzionalità sono disponibili nella documentazione di Monitoraggio di Azure.