Snabbstart: Använda Azure Cache for Redis med en ASP.NET-webbapp
I den här snabbstarten använder du Visual Studio 2019 för att ändra ett ASP.NET webbprogram som ansluter till Azure Cache for Redis för att lagra och hämta data från cacheminnet. Sedan distribuerar du appen till Azure App Service.
Hoppa till koden
Den här artikeln beskriver hur du ändrar koden för en exempelapp för att skapa en fungerande app som ansluter till Azure Cache for Redis.
Om du vill gå direkt till exempelkoden kan du läsa ASP.NET snabbstartsexempel på GitHub.
Förutsättningar
- En Azure-prenumeration. Skapa en kostnadsfritt
- Visual Studio 2019 med arbetsbelastningarna ASP.NET och webbutveckling och Azure Development .
Skapa en cache
Skapa sedan cachen som ska användas med appen.
Om du vill skapa en cache loggar du in på Azure Portal. På portalmenyn väljer du Skapa en resurs.
I fönstret Kom igång anger du Azure Cache for Redis i sökfältet. I sökresultaten letar du upp Azure Cache for Redis och väljer sedan Skapa.
I fönstret Ny Redis Cache på fliken Grundläggande konfigurerar du följande inställningar för din cache:
Inställning Åtgärd beskrivning Abonnemang Välj din Azure-prenumerationen. Prenumerationen som ska användas för att skapa den nya instansen av Azure Cache for Redis. Resursgrupp Välj en resursgrupp eller välj Skapa ny och ange ett nytt resursgruppsnamn. Ett namn på resursgruppen där du kan skapa cacheminnet och andra resurser. Genom att placera alla dina appresurser i en resursgrupp kan du enkelt hantera eller ta bort dem tillsammans. DNS-namn Ange ett unikt namn. Cachenamnet måste vara en sträng på 1 till 63 tecken som endast innehåller siffror, bokstäver och bindestreck. Namnet måste börja och sluta med ett tal eller en bokstav, och det får inte innehålla bindestreck i följd. Värdnamnet för cacheinstansen är \<DNS name>.redis.cache.windows.net
.Plats Välj en plats. En Azure-region som ligger nära andra tjänster som använder din cache. Cache-SKU Välj en SKU. SKU:n avgör vilka storleks-, prestanda- och funktionsparametrar som är tillgängliga för cachen. Mer information finns i Översikt över Azure Cache for Redis. Cachestorlek Välj en cachestorlek. Mer information finns i Översikt över Azure Cache for Redis. Välj fliken Nätverk eller välj Nästa: Nätverk.
På fliken Nätverk väljer du en anslutningsmetod som ska användas för cacheminnet.
Välj fliken Avancerat eller välj Nästa: Avancerat.
I fönstret Avancerat kontrollerar eller väljer du en autentiseringsmetod baserat på följande information:
- Som standard aktiveras Microsoft Entra-autentisering för en ny Basic-, Standard- eller Premium-cache och åtkomstnycklarnas autentisering inaktiveras.
- För Basic- eller Standard-cacheminnen kan du välja valet för en icke-TLS-port.
- För Standard- och Premium-cacheminnen kan du välja att aktivera tillgänglighetszoner. Du kan inte inaktivera tillgänglighetszoner när cacheminnet har skapats.
- För en Premium-cache konfigurerar du inställningarna för icke-TLS-port, klustring, hanterad identitet och datapersistence.
Viktigt!
För optimal säkerhet rekommenderar vi att du använder Microsoft Entra-ID med hanterade identiteter för att auktorisera begäranden mot din cache om möjligt. Auktorisering med hjälp av Microsoft Entra-ID och hanterade identiteter ger överlägsen säkerhet och användarvänlighet för auktorisering av delad åtkomstnyckel. Mer information om hur du använder hanterade identiteter med din cache finns i Använda Microsoft Entra-ID för cacheautentisering.
(Valfritt) Välj fliken Taggar eller välj Nästa: Taggar.
(Valfritt) På fliken Taggar anger du ett taggnamn och värde om du vill kategorisera cacheresursen.
Välj knappen Granska + skapa.
På fliken Granska + skapa verifierar Azure automatiskt din konfiguration.
När det gröna verifieringsmeddelandet har skickats väljer du Skapa.
En ny cachedistribution sker under flera minuter. Du kan övervaka förloppet för distributionen i översiktsfönstret Azure Cache for Redis. När Status visar Körs är cachen redo att användas.
Hämta värdnamnet, portarna och åtkomstnyckeln
För att ansluta till Azure Cache for Redis-servern behöver cacheklienten cachens värdnamn, portar och en åtkomstnyckel. Vissa klienter kan referera till dessa objekt med hjälp av lite olika namn. Du kan hämta värdnamnet, portarna och nycklarna i Azure Portal.
Så här hämtar du en åtkomstnyckel för din cache:
- I Azure Portal går du till cacheminnet.
- På tjänstmenyn går du till Inställningar och väljer Autentisering.
- I fönstret Autentisering väljer du fliken Åtkomstnycklar .
- Om du vill kopiera värdet för en åtkomstnyckel väljer du ikonen Kopiera i nyckelfältet.
Så här hämtar du värdnamnet och portarna för cachen:
- I Azure Portal går du till cacheminnet.
- På tjänstmenyn väljer du Översikt.
- Under Essentials, för Värdnamn, väljer du ikonen Kopiera för att kopiera värdnamnets värde. Värdnamnets värde har formuläret
<DNS name>.redis.cache.windows.net
. - För Portar väljer du ikonen Kopiera för att kopiera portvärdena.
Redigera cachesecrets.config-filen
Skapa en fil med namnet CacheSecrets.config på datorn. Placera filen på en plats där den inte är incheckad med källkoden för exempelprogrammet. För den här snabbstarten finns cachesecrets.config-filen i mappen C:\AppSecrets\ .
Redigera cachesecrets.config-filen för att lägga till följande innehåll.
I koden:
Ersätt
<cache-name>
med din cachens värdnamn.Ersätt
<access-key>
med den primära åtkomstnyckeln för cacheminnet.Dricks
Du kan använda den sekundära åtkomstnyckeln under nyckelrotation som en alternativ nyckel medan du återskapar den primära åtkomstnyckeln.
<appSettings> <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/> </appSettings>
Spara filen.
Uppdatera MVC-appen
I det här avsnittet visar ett MVC-program (model-view-controller) ett enkelt test för anslutningen till Azure Cache for Redis.
Så här ansluter filen web.config till cachen
När du kör appen lokalt används informationen i CacheSecrets.config för att ansluta till Azure Cache for Redis-instansen. Senare kan du distribuera det här programmet till Azure. Då konfigurerar du en appinställning i Azure som programmet använder för att hämta cacheanslutningsinformationen i stället för att använda konfigurationsfilen.
Eftersom cachesecrets.config-filen inte distribueras till Azure med ditt program använder du den bara när du testar programmet lokalt. Håll den här informationen så säker som möjligt för att förhindra skadlig åtkomst till dina cachedata.
Uppdatera filen web.config
Öppna filen web.config i Solution Explorer.
I filen web.config anger du att elementet
<appSettings>
ska köra programmet lokalt:<appSettings file="C:\AppSecrets\CacheSecrets.config">
ASP.NET-körningsmiljön sammanfogar innehållet i den externa filen med markeringen i <appSettings>
-elementet. Vid körningen ignoreras filattributet om det inte går att hitta den angivna filen. Din hemliga information (anslutningssträngen till cachen) ingår inte i källkoden för programmet. När du distribuerar din webbapp till Azure så distribueras inte filen CacheSecrets.config.
Installera StackExchange.Redis
Lösningen kräver StackExchange.Redis
att paketet körs.
Så här installerar du StackExchange.Redis
paketet:
Om du vill konfigurera appen att använda NuGet-paketet StackExchange.Redis för Visual Studio väljer du Verktyg>NuGet Package Manager>Package Manager Console.
Kör följande kommando i fönstret Package Manager Console:
Install-Package StackExchange.Redis
NuGet-paketet laddar ned och lägger till nödvändiga sammansättningsreferenser för klientprogrammet för åtkomst till Azure Cache for Redis med hjälp StackExchange.Redis
av klienten.
Ansluta till cachen med hjälp av RedisConnection
Anslutningen till cachen hanteras av RedisConnection
klassen. Anslutningen görs först i den här instruktionen som finns i ContosoTeamStats/Controllers/HomeController.cs:
private static Task<RedisConnection> _redisConnectionFactory = RedisConnection.InitializeAsync(connectionString: ConfigurationManager.AppSettings["CacheConnection"].ToString()););
Värdet för hemligheten CacheConnection
används med hjälp av Secret Manager-konfigurationsprovidern och används som lösenordsparameter.
I RedisConnection.cs kan du se att namnområdet StackExchange.Redis läggs till i koden. Klassen RedisConnection
kräver namnområdet.
using StackExchange.Redis;
Koden RedisConnection
säkerställer att det alltid finns en felfri anslutning till cacheminnet. Anslutningen hanteras via instansen ConnectionMultiplexer
i StackExchange.Redis. Klassen RedisConnection
återskapar anslutningen när en anslutning går förlorad och det inte går att återansluta automatiskt.
Mer information finns i StackExchange.Redis och koden i en GitHub-lagringsplats.
Verifiera layoutvyer i exemplet
Startsideslayouten för det här exemplet lagras i filen _Layout.cshtml . På den här sidan startar du själva cachetestningen genom att välja Azure Cache for Redis Test på den här sidan.
I Solution Explorer väljer du Vyer och högerklickar sedan på mappen Delad . Öppna sedan filen _Layout.cshtml .
Kontrollera att följande rad finns i
<div class="navbar-header">
:@Html.ActionLink("Azure Cache for Redis Test", "RedisCache", "Home", new { area = "" }, new { @class = "navbar-brand" })
Visa data från cachen
På startsidan väljer du Azure Cache for Redis Test i navigeringsfältet för att se exempelutdata.
I Solution Explorer väljer du Vyer och högerklickar sedan på mappen Start .
Kontrollera att följande kod finns i filen 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>
Köra appen lokalt
Som standard konfigureras projektet som värd för appen lokalt i IIS Express för testning och felsökning.
Köra appen lokalt:
I Visual Studio väljer du Felsök>Börja felsöka för att skapa och starta appen lokalt för testning och felsökning.
Välj Azure Redis Cache for Redis-test i webbläsarens navigeringsfält.
I exemplet nedan ser du att
Message
-nyckeln tidigare hade ett cachelagrat värde som angavs med Azure Cache for Redis-konsolen i portalen. Appen uppdatera det cachelagrade värdet. Appen körde även kommandonaPING
ochCLIENT LIST
.
Publicera och köra i Azure
När du har testat appen lokalt distribuerar du den till Azure och kör den i molnet.
Så här publicerar du appen till Azure:
Högerklicka på projektnoden i Solution Explorer i Visual Studio och välj Publicera.
Välj Microsoft Azure App Service>Skapa ny>publicering.
Gör följande ändringar i dialogrutan Skapa App Service:
Inställning Åtgärd beskrivning Appnamn Använd standardvärdet. Appnamnet blir värdnamnet för appen när den har distribuerats till Azure. Namnet kan ha ett tidsstämpelsuffix tillagt för att göra appnamnet unikt. Abonnemang Välj din Azure-prenumerationen. Den här prenumerationen debiteras för eventuella relaterade värdkostnader. Om du har flera Azure-prenumerationer kontrollerar du att den prenumeration som du vill använda är markerad. Resursgrupp Använd samma resursgrupp som du använde för att skapa cacheminnet (till exempel TestResourceGroup). Resursgruppen hjälper dig att hantera alla resurser som en grupp. Senare när du vill ta bort appen kan du ta bort resursgruppen för att ta bort alla relaterade resurser. App Service-plan Välj Nytt och skapa en ny App Service-Plan med namnet TestingPlan.
Använd samma värde för Plats som du använde när du skapade cacheminnet.
För storlek väljer du Kostnadsfri.En App Service-plan definierar en uppsättning beräkningsresurser för en webbapp att köra med. När du har konfigurerat App Service-värdinställningarna väljer du Skapa.
I fönstret Utdata kontrollerar du publiceringsstatusen. När appen har publicerats visas URL:en för appen som utdata:
Lägga till en appinställning för cacheminnet
När den nya appen har publicerats lägger du till en ny appinställning i Azure Portal. Den här inställningen lagrar cacheanslutningsinformationen.
Så här lägger du till appinställningen:
I Azure Portal anger du namnet på appen i sökfältet.
Lägg till en ny appinställning med namnet CacheConnection som appen ska använda för att ansluta till cachen. Använd samma värde som du använde för
CacheConnection
i cachesecrets.config-filen. Värdet innehåller cachens värdnamn och åtkomstnyckel.
Köra appen i Azure
Gå till URL:en för appen i webbläsaren. URL:en visas i resultatet av publiceringsåtgärden i fönstret Visual Studio-utdata. Den visas också i Azure Portal i översiktsfönstret i din app.
I navigeringsfältet på webbsidan väljer du Azure Cache for Redis Test för att testa cacheåtkomst som du gjorde med den lokala versionen.
Rensa resurser
Om du vill fortsätta att använda de resurser som du skapade i den här artikeln behåller du resursgruppen.
Annars kan du ta bort den Azure-resursgrupp som du skapade om du är klar med resurserna för att undvika kostnader som är relaterade till resurserna.
Varning
Att ta bort en resursgrupp kan inte ångras. När du tar bort en resursgrupp tas alla resurser i resursgruppen bort permanent. Kontrollera att du inte av misstag tar bort fel resursgrupp eller resurser. Om du har skapat resurserna i en befintlig resursgrupp som har resurser som du vill behålla kan du ta bort varje resurs individuellt i stället för att ta bort resursgruppen.
Ta bort en resursgrupp
Logga in på Azure-portalen och välj Resursgrupper.
Välj den resursgrupp som ska tas bort.
Om det finns många resursgrupper anger du namnet på den resursgrupp som du skapade för att slutföra den här artikeln i Filtrera efter valfritt fält. I listan med sökresultat väljer du resursgruppen.
Välj Ta bort resursgrupp.
I fönstret Ta bort en resursgrupp anger du namnet på resursgruppen som ska bekräftas och väljer sedan Ta bort.
Inom en liten stund tas resursgruppen och alla dess resurser bort.