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

In questo argomento di avvio rapido si usa Visual Studio 2019 per modificare un'applicazione Web ASP.NET che si connette alla cache di Azure per Redis per archiviare e recuperare i dati dalla cache. Si distribuisce quindi l'app nel Servizio app di Azure.

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 di esempio, vedere l'esempio di avvio rapido ASP.NET in GitHub.

Prerequisiti

Creare una cache

Creare quindi la cache da usare con l'app.

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

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

  2. Nella pagina 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. Nel riquadro Avanzate verificare o selezionare un metodo di autenticazione in base alle informazioni seguenti:

    Screenshot che mostra il riquadro Avanzate e le opzioni disponibili per la selezione.

    • Per impostazione predefinita, per una nuova cache Basic, Standard o Premium, l'Autenticazione di Microsoft Entra è abilitata e l'Autenticazione delle chiavi di accesso è disabilitata.
    • Per le cache Basic o Standard, è possibile scegliere la selezione di una porta non TLS.
    • Per le cache Standard e Premium, è possibile scegliere di abilitare le zone di disponibilità. Non è possibile disabilitare le zone di disponibilità dopo la creazione della cache.
    • Per una cache Premium, configurare le impostazioni per la porta non TLS, il clustering, l'identità gestita e la persistenza dei dati.

    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 della cache di Azure per Redis. Quando l'elemento Stato mostra In esecuzione, la cache è pronta per l'uso.

Ottenere il nome host, le porte e la chiave di accesso

Per connettere il server della cache di Azure per Redis, il client della cache deve avere il nome host della cache, le porte e una chiave di accesso. Alcuni client possono fare riferimento a questi elementi usando nomi leggermente diversi. È possibile ottenere il nome host, le porte e le chiavi nel portale di Azure.

  • Per ottenere una chiave di accesso per la cache:

    1. Nel portale di Azure passare alla cache.
    2. Nel menu del servizio, in Impostazioni selezionare Autenticazione.
    3. Nel riquadro Autenticazione selezionare la scheda Chiavi di accesso.
    4. Per copiare il valore per una chiave di accesso, selezionare l'icona Copia nel campo della chiave.

    Screenshot che mostra come trovare e copiare una chiave di accesso per un'istanza di cache di Azure per Redis.

  • Per ottenere il nome host e le porte della cache:

    1. Nel portale di Azure passare alla cache.
    2. Nel menù del servizio selezionare Panoramica.
    3. In Informazioni di base, per Nome host, selezionare l'icona Copia per copiare il valore del nome host. Il valore del nome host ha il formato <DNS name>.redis.cache.windows.net.
    4. Per Porte, selezionare l'icona Copia per copiare i valori della porta.

    Screenshot che mostra come trovare e copiare il nome host e le porte per un'istanza di cache di Azure per Redis.

Modificare il file CacheSecrets.config

  1. Creare un file nel computer denominato CacheSecrets.config. Inserire il file in una posizione in cui non verrà archiviato con il codice sorgente dell'applicazione di esempio. Per questo avvio rapido, il file CacheSecrets.config si trova nella cartella C:\AppSecrets\.

  2. Modificare il file CacheSecrets.config per aggiungere il contenuto seguente.

    Nel codice:

    • Sostituire <cache-name> con il nome host della cache.

    • Sostituire <access-key> con la chiave di accesso primaria per la cache.

      Suggerimento

      È possibile usare la chiave di accesso secondaria durante la rotazione delle chiavi come chiave alternativa mentre si rigenera la chiave di accesso primaria.

    <appSettings>
        <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. Salvare il file.

Aggiornare l'applicazione MVC

In questa sezione un'applicazione MVC (Model-View-Controller) visualizza un semplice test per la connessione alla cache di Azure per Redis.

Modalità di connessione del file web.config alla cache

Quando si esegue l'applicazione in locale, queste informazioni in CacheSecrets.config vengono usate per connettersi all'istanza di Cache Redis di Azure. In un secondo momento, sarà possibile distribuire l'applicazione in Azure. A quel punto si configurerà un'impostazione dell'app in Azure usata dall'applicazione per recuperare le informazioni di connessione alla cache al posto del file config.

Poiché il file CacheSecrets.config non viene distribuito in Azure con l'applicazione, lo si usa solo quando si testa l'applicazione in locale. Conservare queste informazioni nel modo più sicuro possibile per impedire l'accesso ai dati della cache da parte di utenti malintenzionati.

Aggiornare il file web.config

  1. In Esplora soluzioni aprire il file web.config.

    Screenshot che mostra il file web.config in Esplora soluzioni di Visual Studio.

  2. Nel file web.config impostare l'elemento <appSettings> per eseguire l'applicazione in locale:

    <appSettings file="C:\AppSecrets\CacheSecrets.config">

Il runtime ASP.NET unisce il contenuto del file esterno con il markup nell'elemento <appSettings> . Il runtime ignora l'attributo file, se non è possibile trovare il file specificato. I segreti, ovvero la stringa di connessione alla cache, non sono inclusi come parte del codice sorgente per l'applicazione. Quando si distribuisce l'app Web in Azure, il file CacheSecrets.config non viene distribuito.

Installare StackExchange.Redis

La soluzione richiede il pacchetto StackExchange.Redis per l'esecuzione.

Per installare il pacchetto StackExchange.Redis:

  1. Per configurare l'app per usare il pacchetto NuGet StackExchange.Redis per Visual Studio, selezionare Strumenti>Gestione pacchetti NuGet>Console di Gestione pacchetti.

  2. Nella finestra Console di Gestione pacchetti digitare il comando seguente:

    Install-Package StackExchange.Redis
    

Il pacchetto NuGet scarica e aggiunge i riferimenti ad assembly richiesti per consentire all'applicazione client di accedere alla cache di Azure per Redis usando il client StackExchange.Redis.

Connettersi alla cache usando RedisConnection

La connessione alla cache viene gestita dalla classe RedisConnection. La connessione viene eseguita per la prima volta in questa istruzione che si trova in ContosoTeamStats/Controllers/HomeController.cs:

   private static Task<RedisConnection> _redisConnectionFactory = RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString()););

Il valore del segreto CacheConnection è accessibile tramite il provider di configurazione Secret Manager e viene usato come parametro password.

In RedisConnection.csè possibile notare che lo spazio dei nomi StackExchange.Redis viene aggiunto al codice. La classe RedisConnectionrichiede lo spazio dei nomi.

using StackExchange.Redis;

Il codice RedisConnection garantisce che sia sempre presente una connessione integra alla cache. La connessione viene gestita tramite l'istanza ConnectionMultiplexer in 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 in un repository GitHub.

Verificare le visualizzazioni layout nell'esempio

Il layout della home page per questo esempio viene archiviato nel file _Layout.cshtml. Da questa pagina si avvia il test effettivo della cache selezionando Test della cache di Azure per Redis in questa pagina.

  1. In Esplora soluzioni selezionare Visualizzazioni e quindi fare clic con il pulsante destro del mouse sulla cartella Condivisa. Aprire quindi il file _Layout.cshtml.

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

    @Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
    

    Screenshot che mostra le opzioni di navigazione e il benvenuto 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 selezionare Visualizzazioni e quindi 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

Per impostazione predefinita, il progetto è configurato per ospitare l'app in locale in IIS Express per i test e il debug.

Per eseguire l'app in locale:

  1. In Visual Studio, selezionare Debug>Avvia debug per compilare e avviare l'app in locale per i test e il debug.

  2. Nel browser selezionare Azure Cache for Redis Test (Test di Cache Redis di Azure) sulla barra di spostamento.

  3. Nell'esempio seguente la chiave Message in precedenza aveva un valore memorizzato nella cache, impostato usando la console di Cache Redis di Azure nel portale. L'app ha aggiornato questo valore memorizzato nella cache. L'app ha anche eseguito i comandi PING e CLIENT LIST.

    Screenshot che mostra un semplice test completato in locale.

Pubblicare ed eseguire l'app in Azure

Dopo avere testato correttamente l'app in locale, è possibile distribuirla in Azure ed eseguirla nel cloud.

Per pubblicare l'app in Azure:

  1. In Esplora soluzioni in Visual Studio fare clic con il pulsante destro del mouse sul nodo del progetto e scegliere Pubblica.

    Screenshot che mostra il comando di menu Pubblica evidenziato in Azure.

  2. Selezionare Servizio app di Microsoft Azure>Crea nuovo>Pubblica.

    Screenshot che mostra le opzioni di menu da impostare per la pubblicazione nel servizio app.

  3. Nella finestra di dialogo Crea servizio app apportare le modifiche seguenti:

    Impostazione Azione Descrizione
    Nome app Usare quello predefinito. Il nome dell'app è il nome host per l'app quando viene distribuita in Azure. Per rendere il nome univoco è possibile aggiungere un suffisso timestamp.
    Abbonamento Seleziona la tua sottoscrizione di Azure. Eventuali costi di hosting correlati vengono addebitati in questa sottoscrizione. Se si hanno più sottoscrizioni di Azure, verificare che sia selezionata la sottoscrizione desiderata.
    Gruppo di risorse Usare lo stesso gruppo di risorse usato per creare la cache, ad esempio TestResourceGroup. Il gruppo di risorse consente di gestire tutte le risorse come gruppo. Successivamente, quando si vuole eliminare l'app, è possibile eliminare il gruppo di risorse per eliminare tutte le risorse correlate.
    Piano di servizio app Selezionare Nuovo e quindi creare un nuovo piano di servizio app denominato TestingPlan.
    Per Posizione usare lo stesso valore usato durante la creazione della cache.
    Per le dimensioni selezionare Gratuito.
    Un piano di servizio app definisce un set di risorse di calcolo per l'esecuzione di un'app Web.

    Screenshot che mostra la finestra di dialogo Servizio app in Azure.

  4. Dopo aver configurato le impostazioni host del servizio app, selezionare Crea.

  5. Nella finestra Output controllare lo stato di pubblicazione. Dopo la pubblicazione dell'app, l'URL dell'app viene visualizzato come output:

    Screenshot che mostra la finestra di output della pubblicazione in Visual Studio.

Aggiungere un'impostazione dell'app per la cache

Dopo la pubblicazione della nuova app, aggiungere una nuova impostazione dell'app nel portale di Azure. Questa impostazione archivia le informazioni di connessione della cache.

Per aggiungere l'impostazione dell'app:

  1. Nel portale di Azure immettere il nome dell'app nella barra di ricerca.

    Screenshot che mostra la ricerca di un'app nel portale di Azure.

  2. Aggiungere una nuova impostazione dell'app denominata CacheConnection per l'app da usare per connettersi alla cache. Usare lo stesso valore usato per CacheConnection nel file CacheSecrets.config. Il valore contiene la chiave di accesso e il nome host della cache.

    Screenshot che mostra l'aggiunta di un'impostazione dell'app.

Eseguire l'app in Azure

  1. Nel browser passare all'URL per l'app. L'URL viene visualizzato nei risultati dell'operazione di pubblicazione nella finestra di output di Visual Studio. Viene visualizzato anche nel portale di Azure nel riquadro Panoramica dell'app.

  2. Nella barra di spostamento della pagina Web selezionare Test della cache di Azure per Redis per testare l'accesso alla cache come è stato fatto con la versione 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é eliminare il gruppo di risorse.

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 e 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.