Avvio rapido: usare cache di Azure per Redis con un'app Web ASP.NET Core

In avvio rapido si incorpora la cache di Azure per Redis in un'applicazione Web ASP.NET Core che si connette alla cache di Azure per Redis per archiviare e ottenere i dati dalla cache.

È possibile usare un provider di memorizzazione nella cache nell'app Web ASP.NET Core. Per iniziare a usare rapidamente Redis con modifiche minime al codice esistente, vedere:

Passare al codice

Questo articolo descrive come modificare il codice per un'app di esempio per creare un'app funzionante che si connette alla cache di Azure per Redis.

Per passare direttamente al codice, vedere l'esempio di avvio rapido ASP.NET Core in GitHub.

È possibile clonare il repository GitHub degli esempi di Cache Redis di Azure e quindi passare alla directory quickstart/aspnet-core per visualizzare il codice sorgente completato per i passaggi descritti in questo articolo.

La directory di guida introduttiva/aspnet-core è configurata anche come modello dell'interfaccia della riga di comando per sviluppatori di Azure. Usare lo strumento azd open source per semplificare il provisioning e la distribuzione da un ambiente locale ad Azure. Facoltativamente, eseguire il comando azd up per effettuare automaticamente il provisioning di un'istanza di Cache Redis di Azure e configurare l'app di esempio locale per la connessione:

azd up

Esplorare l'esempio di eShop

Come passaggio successivo, è possibile visualizzare un'applicazione eShop in uno scenario reale che illustra i provider di memorizzazione nella cache ASP.NET Core: ASP.NET Core eShop usando i provider di memorizzazione nella cache Redis.

Funzionalità incluse:

  • Memorizzazione nella cache distribuita Redis
  • Provider di stato della sessione Redis

Le istruzioni di distribuzione sono disponibili nel file README.md nell'esempio di avvio rapido di ASP.NET Core in GitHub.

Prerequisiti

Creare una cache

  1. Per creare una cache, accedere al portale di Azure. Nel menu del portale selezionare Crea una risorsa.

    Screenshot che mostra l'opzione Crea una risorsa evidenziata nel riquadro di spostamento a sinistra nel portale di Azure.

  2. Nel riquadro Attività iniziali immettere Cache di Azure per Redis nella barra di ricerca. Nei risultati della ricerca trovare Cache di Azure per Redis e quindi selezionare Crea.

    Screenshot che mostra Azure Marketplace con Cache di Azure per Redis nella casella di ricerca e il pulsante Crea evidenziato.

  3. Nel riquadro Nuova cache Redis, nella scheda Informazioni di base configurare le impostazioni seguenti per la cache:

    Impostazione Azione Descrizione
    Abbonamento Seleziona la tua sottoscrizione di Azure. Sottoscrizione da usare per creare la nuova istanza della cache di Azure per Redis.
    Gruppo di risorse Selezionare un gruppo di risorse oppure selezionare Crea nuovo e immettere un nuovo nome del gruppo di risorse. Nome del gruppo di risorse in cui creare la cache e altre risorse. L'inserimento di tutte le risorse di un'app in un unico gruppo di risorse ne semplifica la gestione o l'eliminazione.
    Nome DNS Immettere un nome univoco. Il nome della cache deve essere una stringa compresa tra 1 e 63 caratteri contenente solo numeri, lettere o trattini. Il nome deve iniziare e terminare con un numero o una lettera e non può contenere trattini consecutivi. Il nome host dell'istanza della cache è \<DNS name>.redis.cache.windows.net.
    Location Selezionare una località. Un'area di Azure vicina ad altri servizi che usano la cache.
    SKU della cache Selezionare uno SKU. Lo SKU determina le dimensioni, le prestazioni e i parametri delle funzionalità disponibili per la cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure.
    Dimensioni della cache Selezionare le dimensioni della cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure.
  4. Selezionare la scheda Rete oppure selezionare Avanti: Rete.

  5. Nella scheda Rete selezionare un metodo di connettività da usare per la cache.

  6. Selezionare la scheda Avanzate o Avanti: Avanzate.

  7. Nella scheda Avanzate selezionare la casella di controllo Microsoft Entra Authentication per abilitare l'autenticazione di Microsoft Entra.

    Screenshot che mostra il riquadro Avanzate e l’opzione disponibile per la selezione.

    Importante

    Per una protezione ottimale, è consigliabile usare Microsoft Entra ID con identità gestite per autorizzare le richieste nella cache ogni volta che è possibile. L'autorizzazione tramite Microsoft Entra ID e le identità gestite offre sicurezza e facilità d'uso superiori rispetto all'autorizzazione con chiave di accesso condiviso. Per altre informazioni sull'uso delle identità gestite con le cache, vedere Usare Microsoft Entra ID per l'autenticazione della cache.

  8. (Facoltativo) Selezionare la scheda Tag o selezionare Avanti: Tag.

  9. (Facoltativo) Nella scheda Tag immettere un nome e un valore di tag per classificare la risorsa della cache.

  10. Selezionare il pulsante Rivedi e crea.

    Nella scheda Rivedi e crea Azure convalida automaticamente la configurazione.

  11. Quando viene visualizzato il messaggio verde di Convalida superata, selezionare Crea.

Una nuova distribuzione della cache richiede diversi minuti. È possibile monitorare lo stato di avanzamento della distribuzione nel riquadro Panoramica di Cache di Azure per Redis. Quando Stato mostra In esecuzione, la cache è pronta per l'uso.

Ottenere il nome host

Per connettersi al server Cache Redis di Azure, il client della cache richiede il nome host della cache e altre informazioni. Alcuni client possono fare riferimento agli elementi usando nomi leggermente diversi. È possibile ottenere il nome host nel portale di Azure.

  1. Nel portale di Azure andare alla cache.
  2. Nel menu del servizio, selezionare Panoramica.
  3. In Funzionalità essenziali, per Nome host, selezionare l'icona Copia per copiare il valore del nome host. Il formato del valore del nome host è il seguente: <DNS name>.redis.cache.windows.net.

Screenshot che mostra le proprietà di Cache Redis di Azure con il nome host evidenziato.

Aggiungere un nuovo criterio di accesso utente di Redis

All'identità che accede a Cache Redis di Azure deve essere assegnato un criterio di accesso ai dati. Per questo esempio, si assegnano criteri di accesso ai dati allo stesso account Microsoft Entra ID usato per accedere all'interfaccia della riga di comando di Azure o a Visual Studio.

  1. Nel portale di Azure andare alla cache.

  2. Nel menu del servizio, in Impostazioni, selezionare Configurazione accesso ai dati.

  3. Nel riquadro Configurazione accesso ai dati, selezionare Aggiungi>Nuovo utente Redis.

    Screenshot che mostra il riquadro di configurazione dell'accesso ai dati con l'opzione Nuovo utente Redis evidenziata.

  4. Nel riquadro Nuovo utente Redis selezionare il criterio Collaboratore dati, e quindi selezionare Avanti: Utenti Redis.

  5. Scegliere Seleziona membro per aprire il menu a comparsa. Cercare l'account utente e selezionarlo nei risultati.

    Screenshot che mostra la scheda Utente Redis nel riquadro Nuovo utente Redis con l'opzione Seleziona membro evidenziata.

  6. Selezionare Rivedi e assegna per assegnare il criterio all'utente selezionato.

Aggiungere un segreto locale per il nome host

Nella finestra di comando eseguire il comando seguente per archiviare un nuovo segreto denominato RedisHostName. Nel codice sostituire i segnaposto, incluse parentesi angolari, con il nome della cache e la chiave di accesso primaria:

dotnet user-secrets set RedisHostName "<cache-name>.redis.cache.windows.net"

Connettersi alla cache usando RedisConnection

La classe RedisConnection gestisce la connessione alla cache. La connessione viene effettuata in questa istruzione in HomeController.cs nella cartella Controller:

_redisConnection = await _redisConnectionFactory;

Il file RedisConnection.cs include gli spazi dei nomi StackExchange.Redis e Azure.Identity all'inizio del file per includere i tipi essenziali per connettersi a Cache Redis di Azure:

using StackExchange.Redis;
using Azure.Identity;

Il codice della classe RedisConnection garantisce che sia sempre presente una connessione integra alla cache. La connessione viene gestita dall'istanza ConnectionMultiplexer di StackExchange.Redis. La classe RedisConnection ricrea la connessione quando una connessione viene persa e non è possibile riconnettersi automaticamente.

Per altre informazioni, vedere StackExchange.Redis e il codice nel repository GitHub di StackExchange.Redis.

Verificare le visualizzazioni layout nell'esempio

Il layout della home page per questo esempio viene archiviato nel file _Layout.cshtml. Nella sezione successiva si testa la cache usando il controller aggiunto qui.

  1. Aprire Views\Shared\_Layout.cshtml.

  2. Verificare che la riga seguente sia in <div class="navbar-header">:

    <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="RedisCache">Azure Cache for Redis Test</a>
    

Screenshot che mostra una pagina iniziale in una pagina Web.

Visualizzare i dati della cache

Nella home page selezionare Test della cache di Azure per Redis nella barra di spostamento per visualizzare l'output di esempio.

  1. In Esplora soluzioni espandere la cartella Viste e fare clic con il pulsante destro del mouse sulla cartella Home.

  2. Verificare che il codice seguente si trovi nel file RedisCache.cshtml:

    @{
        ViewBag.Title = "Azure Cache for Redis Test";
    }
    
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>
    <br /><br />
    <table border="1" cellpadding="10">
        <tr>
            <th>Command</th>
            <th>Result</th>
        </tr>
        <tr>
            <td>@ViewBag.command1</td>
            <td><pre>@ViewBag.command1Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command2</td>
            <td><pre>@ViewBag.command2Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command3</td>
            <td><pre>@ViewBag.command3Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command4</td>
            <td><pre>@ViewBag.command4Result</pre></td>
        </tr>
        <tr>
            <td>@ViewBag.command5</td>
            <td><pre>@ViewBag.command5Result</pre></td>
        </tr>
    </table>
    

Eseguire l'app in locale

  1. In una finestra del prompt dei comandi compilare l'app usando il comando seguente:

    dotnet build
    
  2. Eseguire l'app usando questo comando:

    dotnet run
    
  3. In un Web browser passare a https://localhost:5001.

  4. Nella barra di spostamento della pagina Web selezionare test di Cache Redis di Azure per testare l'accesso alla cache.

Screenshot che mostra un semplice test completato in locale.

Pulire le risorse

Per continuare a usare le risorse create in questo articolo, mantenere il gruppo di risorse.

In alternativa, per evitare addebiti relativi alle risorse, se si è terminato di usare le risorse è possibile eliminare il gruppo di risorse di Azure creato.

Avviso

L'eliminazione di un gruppo di risorse è irreversibile. Quando si elimina un gruppo di risorse, tutte le risorse al suo interno vengono eliminate in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se le risorse sono state create all'interno di un gruppo di risorse esistente che contiene anche risorse da mantenere, è possibile eliminare ogni singola risorsa individualmente anziché l'intero gruppo.

Eliminare un gruppo di risorse

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.

  2. Selezionare il gruppo di risorse da eliminare.

    Se sono presenti molti gruppi di risorse, in Filtra per qualsiasi campo immettere il nome del gruppo di risorse creato per completare questo articolo. Nell'elenco dei risultati della ricerca selezionare il gruppo di risorse.

    Screenshot che mostra un elenco di gruppi di risorse tra cui scegliere quello da eliminare.

  3. Selezionare Elimina gruppo di risorse.

  4. Nel riquadro Elimina un gruppo di risorse immettere il nome del gruppo di risorse per confermare, quindi selezionare Elimina.

    Screenshot che mostra una casella che richiede l'immissione del nome della risorsa per confermare l'eliminazione.

Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.