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

In questa guida di avvio rapido si usa Visual Studio 2019 per creare un'applicazione Web ASP.NET che si connette ad Azure Cache for Redis per archiviare e recuperare i dati dalla cache. Si distribuisce quindi l'app nel Servizio app di Azure.

Passare al codice in GitHub

Clonare il repository https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet in GitHub.

Prerequisiti

Creare una cache

A questo punto creare la cache per l'app.

  1. Per creare una cache, accedere al portale di Azure e selezionare Crea una risorsa.

    Create a resource is highlighted in the left navigation pane.

  2. Nella pagina Nuovo selezionare Database e quindi Cache di Azure per Redis.

    On New, Databases is highlighted, and Azure Cache for Redis is highlighted.

  3. Nella pagina Nuova cache Redis configurare le impostazioni per la nuova cache.

    Impostazione Scegliere un valore Descrizione
    Abbonamento Nell'elenco a discesa selezionare la sottoscrizione. Sottoscrizione in cui creare la nuova istanza della cache di Azure per Redis.
    Gruppo di risorse Nell'elenco a discesa selezionare un gruppo di risorse oppure scegliere Crea nuovo e immettere il nome di un nuovo 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 che contengono 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 è< nome> DNS.redis.cache.windows.net.
    Location Nell'elenco a discesa selezionare una località. Selezionare un'area vicina ad altri servizi che usano la cache.
    Tipo di cache A discesa e selezionare un livello. Il livello determina le dimensioni, le prestazioni e le funzionalità disponibili per la cache. Per altre informazioni, vedere la panoramica su Cache Redis di Azure.
  4. Selezionare la scheda Rete o selezionare il pulsante Rete nella parte inferiore della pagina.

  5. Nella scheda Rete selezionare il metodo di connettività.

  6. Selezionare la scheda Avanti: Avanzate o selezionare il pulsante Avanti: Avanzate nella parte inferiore della pagina per visualizzare la scheda Avanzate .

    Screenshot showing the Advanced tab in the working pane and the available option to select.

    • Per le cache Basic o Standard, attivare o disattivare la selezione per una porta non TLS. È anche possibile selezionare se si vuole abilitare l'autenticazione di Microsoft Entra.
    • Per una cache Premium, configurare le impostazioni per la porta non TLS, il clustering, l'identità gestita e la persistenza dei dati. È anche possibile selezionare se si vuole abilitare l'autenticazione di Microsoft Entra.
  7. Selezionare la scheda Avanti: Tag o selezionare il pulsante Avanti: Tag nella parte inferiore della pagina.

  8. Facoltativamente, nella scheda Tag immettere il nome e il valore se si vuole categorizzare la risorsa.

  9. Selezionare Rivedi e crea. Si viene reindirizzati alla scheda Rivedi e crea in cui Azure convalida la configurazione.

  10. Quando viene visualizzato il messaggio di convalida verde, selezionare Crea.

La creazione di una cache richiede tempo. È possibile monitorare lo stato di avanzamento nella pagina Panoramica della cache di Azure per Redis. Quando l'elemento Stato indica In esecuzione, la cache è pronta per l'uso.

Recuperare il nome host, le porte e le chiavi di accesso dal portale di Azure

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

  • Per ottenere le chiavi di accesso, selezionare Chiavi di accesso nel riquadro di spostamento di sinistra della cache.

    Azure Cache for Redis keys

  • Per ottenere il nome host e le porte, selezionare Proprietà nel riquadro di spostamento di sinistra della cache. Il nome host è del formato <nome> DNS.redis.cache.windows.net.

    Azure Cache for Redis properties

Per modificare il file CacheSecrets.config

  1. Creare un file nel computer denominato CacheSecrets.config. Inserirlo in un percorso in cui non verrà archiviato con il codice sorgente dell'applicazione di esempio. Per questa guida introduttiva, il file CacheSecrets.config si trova in C:\AppSecrets\CacheSecrets.config.

  2. Modificare il file CacheSecrets.config. Aggiungere quindi il contenuto seguente:

    <appSettings>
        <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. Sostituire <cache-name> con il nome host della cache.

  4. Sostituire <access-key> con la chiave 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.

  5. Salvare il file.

Aggiornare l'applicazione MVC

In questa sezione è possibile visualizzare un'applicazione MVC che presenta una visualizzazione che visualizza un semplice test su 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, è possibile distribuire questa 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 di questo file.

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.

Per aggiornare il file web.config

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

    Web.config

  2. Nel file web.config è possibile impostare l'elemento per l'esecuzione <appSettings> dell'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 l'esecuzione del StackExchange.Redis pacchetto. Installarlo con questa procedura:

  1. Per configurare l'app per l'uso del pacchetto NuGet StackExchange.Redis per Visual Studio, selezionare Strumenti > NuGet Gestione pacchetti > console Gestione pacchetti.

  2. Eseguire questo comando nella finestra Package Manager Console:

    Install-Package StackExchange.Redis
    
  3. Il pacchetto NuGet scarica e aggiunge i riferimenti all'assembly necessari per l'applicazione client per accedere cache di Azure per Redis con il StackExchange.Redis client.

Connessione alla cache con Redis Connessione ion

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

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

Il valore del segreto Cache Connessione ion viene eseguito tramite il provider di configurazione secret Manager e viene usato come parametro della password.

In RedisConnection.csviene visualizzato che lo StackExchange.Redis spazio dei nomi è stato aggiunto al codice. Questa operazione è necessaria per la RedisConnection classe .

using StackExchange.Redis;

Il RedisConnection codice garantisce che sia sempre presente una connessione integra alla cache gestendo l'istanza ConnectionMultiplexer da StackExchange.Redis. La RedisConnection classe 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.

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 facendo clic sul cache di Azure per Redis Test da questa pagina.

  1. In Esplora soluzioni espandere la cartella Views>Shared. Aprire quindi il file _Layout.cshtml.

  2. La riga seguente viene visualizzata in <div class="navbar-header">.

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

    screenshot of welcome page

Visualizzazione dei dati dalla cache

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

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

  2. Questo codice dovrebbe essere visualizzato 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 of simple test completed local

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 Visual Studio fare clic con il pulsante destro del mouse sul nodo di progetto in Esplora soluzioni. Scegliere quindi Pubblica.

    Publish

  2. Selezionare Servizio app di Microsoft Azure, quindi Crea nuovo e infine Pubblica.

    Publish to App Service

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

    Impostazione Valore consigliato Descrizione
    Nome app Usare quello predefinito. Il nome dell'app è il nome host per l'app quando viene distribuita in Azure. Se necessario, per rendere il nome univoco è possibile aggiungere un suffisso timestamp.
    Abbonamento Scegliere la 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 in cui è stata creata la cache, ad esempio TestResourceGroup. Il gruppo di risorse consente di gestire tutte le risorse come gruppo. Successivamente, quando si vuole eliminare l'app, è sufficiente eliminare il gruppo.
    Piano di servizio app Selezionare Nuovo e quindi creare un nuovo piano di servizio app denominato TestingPlan.
    Usare lo stesso percorso usato durante la creazione della cache.
    Scegliere il livello Gratuito per le dimensioni.
    Un piano di servizio app definisce un set di risorse di calcolo per l'esecuzione di un'app Web.

    App Service dialog box

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

  5. Monitorare la finestra Output in Visual Studio per esaminare lo stato della pubblicazione. Dopo che l'app è stata pubblicata, viene registrato il relativo URL:

    Publishing output

Aggiungere l'impostazione dell'app per la cache

Dopo che la nuova app è stata pubblicata, aggiungere una nuova impostazione dell'app. Questa impostazione viene usata per archiviare le informazioni di connessione alla cache.

Per aggiungere l'impostazione dell'app

  1. Digitare il nome dell'app nella barra di ricerca nella parte superiore del portale di Azure per trovare l'app appena creata.

    Find app

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

    Add app setting

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 dell'output di Visual Studio. È disponibile anche nel portale di Azure nella pagina di panoramica dell'app creata.

  2. Selezionare cache di Azure per Redis Test sulla barra di spostamento per testare l'accesso alla cache come è stato fatto con la versione locale.

Pulire le risorse

Se si continua a usare questa guida introduttiva, è possibile mantenere le risorse create e riutilizzarle.

In caso contrario, se si è terminato il lavoro con l'applicazione di esempio della guida introduttiva, è possibile eliminare le risorse di Azure create in questa guida introduttiva per evitare i costi correlati.

Importante

L'eliminazione di un gruppo di risorse è irreversibile. Quando si elimina un gruppo di risorse, tutte le risorse in esso contenute vengono eliminate in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse sbagliato o le risorse errate. Se sono state create le risorse per l'hosting di questo esempio all'interno di un gruppo di risorse esistente che contiene le risorse da conservare, è possibile eliminare ogni risorsa singolarmente a sinistra anziché eliminare il gruppo di risorse.

Per eliminare un gruppo di risorse

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

  2. Nella casella Filtra per nome immettere il nome del gruppo di risorse. Le istruzioni di questo articolo usano un gruppo di risorse denominato TestResources. Nel gruppo di risorse, nell'elenco dei risultati, selezionare... e quindi Elimina gruppo di risorse.

    Delete

  3. Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Digitare il nome del gruppo di risorse per confermare e quindi selezionare Elimina.

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

Passaggi successivi