Accedere alle metriche di Archiviazione di Azure nel codice

Completato

Sono state analizzate le metriche inviate dall'account di archiviazione video a Monitoraggio di Azure. Si desidera visualizzare alcune di queste metriche nell'applicazione mobile .NET che gli amministratori usano per monitorare il comportamento del sistema di gestione video. A questo punto è necessario sapere come usare l'API .NET di Monitoraggio di Azure per recuperare le metriche da Monitoraggio di Azure.

Panoramica di .NET SDK di Monitoraggio di Azure

L'SDK di Monitoraggio di Azure è un set di interfacce e classi .NET che semplificano l'esecuzione di query per le metriche in Monitoraggio di Azure da qualsiasi progetto .NET. Tramite Gestione pacchetti NuGet, è possibile aggiungere questo SDK a progetti di applicazioni desktop, app per dispositivi mobili, app Web e altri tipi di progetti personalizzati. È possibile, ad esempio, visualizzare in un'app per dispositivi mobili come alcune di queste metriche variano nel tempo o rispondere se una metrica ha superato alcuni valori critici.

Nota

Se si vogliono visualizzare le metriche da un account di archiviazione, è necessario usare l'SDK versione 0.18.0 (anteprima) o versioni successive.

Requisiti si sicurezza

Azure controlla attentamente l'accesso alle metriche autenticando gli utenti e autorizzandoli ad accedere a risorse diverse. Nell'unità 3, quando si è usato curl per richiedere le metriche di archiviazione da Monitoraggio di Azure, è stata usata l'utilità az per l'autenticazione con le credenziali dell'utente che aveva eseguito l'accesso al portale di Azure. Il risultato di questa autenticazione è stato un token di accesso, che è stato passato con la richiesta curl all'API REST di Monitoraggio di Azure.

Per un'applicazione che usa l'API .NET di Azure per chiamare i servizi di Azure, è possibile creare un'entità servizio in Microsoft Entra ID. Questa entità servizio include le credenziali che l'app può fornire per dimostrare la propria identità prima di inviare una richiesta.

È anche necessario assegnare un ruolo all'entità servizio, che autorizza l'app ad accedere a una risorsa. Ad esempio, se si assegna il ruolo Collaboratore a un'app per un gruppo di risorse, l'app può leggere e scrivere i dati per tutte le risorse in quel gruppo, incluso Monitoraggio di Azure.

Come creare un'entità servizio

Per creare un'entità servizio in Azure:

  1. Vai al portale di Azure.

  2. Nella casella di ricerca immettere Microsoft Entra ID.

  3. Nei risultati della ricerca selezionare Microsoft Entra ID.

  4. Nella barra di spostamento sinistra, nella sezione Gestione selezionare Registrazioni app e quindi selezionare + Nuova registrazione. Viene visualizzata la finestra Registra un'applicazione.

  5. Nella casella Nome immettere il nome dell'entità servizio.

  6. Per Tipi di account supportati selezionare Account solo in questa directory dell'organizzazione (Solo Microsoft - Tenant singolo).

  7. Per URI di reindirizzamento, selezionare Web per la risposta di autenticazione e specificare un URL di accesso per l'autenticazione degli utenti.

  8. Selezionare Registrazione. Verrà visualizzata la finestra di registrazione della nuova app.

  9. Prendere nota dell'ID della directory (tenant). Questo identificatore univoco globale identifica in modo univoco l'istanza di Active Directory contenente l'entità servizio e viene anche definito ID tenant.

  10. Assegnare la nuova entità servizio a un ruolo con autorizzazioni sufficienti per accedere alle risorse necessarie. Ad esempio, il ruolo Collaboratore per un gruppo di risorse concede l'accesso a tutte le risorse in quel gruppo, incluse quelle di Monitoraggio di Azure.

Se si completa l'esercizio facoltativo dell'unità successiva, verrà creata un'entità servizio seguendo questa procedura.

Come autenticare l'applicazione

Quando l'entità servizio è pronta, è possibile usarla per eseguire l'autenticazione con Azure seguendo questa procedura nel codice:

  1. Usare il metodo ApplicationTokenProvider.LoginSilentAsync per creare un nuovo set di credenziali del servizio. Quando si chiama questo metodo, specificare l'ID tenant, l'ID applicazione e la chiave annotati in precedenza quando si è creata l'entità servizio.

  2. Creare un nuovo oggetto MonitorClient chiamando il costruttore MonitorClient con le credenziali del servizio create. L'oggetto MonitorClient è usato per inviare query per le metriche.

  3. Impostare la proprietà MonitorClient.SubscriptionID per identificare la sottoscrizione di Azure a cui connettersi. Si tratta dello stesso ID sottoscrizione usato nell'unità 3.

Come elencare le definizioni e i valori delle metriche

Dopo aver creato la classe MonitorClient, è possibile usarla per eseguire una query per le metriche di Archiviazione di Azure in Monitoraggio di Azure. Il primo passaggio consiste nell'individuare le metriche disponibili elencando le relative definizioni.

A tale scopo, chiamare il metodo MetricDefinitions.ListAsync nell'oggetto MonitorClient e specificare l'ID risorsa del servizio dell'account di archiviazione. Questo ID risorsa è lo stesso valore usato nell'unità 3 per specificare le metriche da elencare.

Nota

L'ID risorsa specificato deve corrispondere al servizio corretto all'interno dell'account di archiviazione; esistono diversi ID risorsa per i servizi BLOB, File, Tabelle e Coda nello stesso account di archiviazione.

Dopo aver identificato il nome di una metrica da usare, è possibile recuperare i relativi valori chiamando il metodo Metrics.ListAsync e passando il nome della metrica e il periodo di tempo desiderato. Questo metodo restituisce una raccolta dei valori per tale metrica entro il periodo specifico. È possibile scorrere la raccolta di valori e renderli visibili all'utente o eseguire altre operazioni.

Verificare le conoscenze

1.

È stata creata un'entità servizio in Microsoft Entra ID e ne è stata eseguita correttamente l'autenticazione tramite il metodo LoginSilentAsync. Quando si chiama MetricDefinitions.ListAsync, si riceve un messaggio di accesso negato. Come risolvere il problema?

2.

È stato scritto il codice che recupera correttamente le definizioni delle metriche per un account di archiviazione di Azure da Monitoraggio di Azure. A questo punto si vogliono recuperare i valori della metrica UsedCapacity. Quale metodo occorre chiamare?