Schnellstart: Verwenden von Azure Cache for Redis mit einer ASP.NET-Web-App

In dieser Schnellstartanleitung erstellen Sie mit Visual Studio 2019 eine ASP.NET-Webanwendung, die sich mit Azure Cache for Redis verbindet, um Daten aus dem Cache zu speichern und abzurufen. Sie stellen die App dann für Azure App Service bereit.

Überspringen und mit dem Code auf GitHub fortfahren

Klonen Sie das Repository https://github.com/Azure-Samples/azure-cache-redis-samples/tree/main/quickstart/aspnet auf GitHub.

Voraussetzungen

Erstellen eines Caches

Als Nächstes erstellen Sie den Cache für die App.

  1. Melden Sie sich zum Erstellen eines Caches beim Azure-Portal an, und wählen Sie Ressource erstellen aus.

    Create a resource is highlighted in the left navigation pane.

  2. Wählen Sie auf der Seite Neu die Option Datenbanken und dann Azure Cache for Redis aus.

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

  3. Konfigurieren Sie auf der Seite Neuer Redis Cache die Einstellungen für den neuen Cache.

    Einstellung Wert auswählen BESCHREIBUNG
    Abonnement Öffnen Sie die Dropdownliste, und wählen Sie Ihr Abonnement aus. Das Abonnement, unter dem diese neue Azure Cache for Redis-Instanz erstellt wird.
    Ressourcengruppe Öffnen Sie die Dropdownliste, und wählen Sie eine Ressourcengruppe aus, oder wählen Sie Neu erstellen aus, und geben Sie einen Namen für eine neue Ressourcengruppe ein. Der Name der Ressourcengruppe, in der Ihr Cache und weitere Ressourcen erstellt werden. Wenn Sie alle Ihre App-Ressourcen in einer Ressourcengruppe zusammenfassen, können Sie sie einfacher gemeinsam verwalten oder löschen.
    DNS-Name Geben Sie einen eindeutigen Namen ein. Der Cachename muss zwischen 1 und 63 Zeichen lang sein und darf nur Ziffern, Buchstaben und Bindestriche enthalten. Der Name muss mit einer Zahl oder einem Buchstaben beginnen und enden und darf keine aufeinanderfolgenden Bindestriche enthalten. Der Hostname Ihrer Cache-Instanz lautet <DNS-Name>.redis.cache.windows.net.
    Location Öffnen Sie die Dropdownliste, und wählen Sie einen Standort aus. Wählen Sie eine Region in der Nähe anderer Dienste aus, die Ihren Cache verwenden.
    Cachetyp Öffnen Sie die Dropdownliste, und wählen Sie einen Tarif aus. Der Tarif bestimmt Größe, Leistung und verfügbare Features für den Cache. Weitere Informationen finden Sie unter What is Azure Cache for Redis (Was ist Azure Cache for Redis?).
  4. Wählen Sie die Registerkarte Netzwerk oder unten auf der Seite die Schaltfläche Netzwerk aus.

  5. Wählen Sie auf der Registerkarte Netzwerk Ihre Konnektivitätsmethode aus.

  6. Wählen Sie die Registerkarte Weiter: Erweitert oder unten auf der Seite die Schaltfläche Weiter: Erweitert aus.

  7. Aktivieren Sie auf der Registerkarte Erweitert für eine Basic- oder Standard-Cache-Instanz die Aktivierungsoption, wenn Sie einen TLS-fremden Port aktivieren möchten. Sie können auch die zu verwendende Redis-Version auswählen, entweder 4 oder 6.

    Redis version 4 or 6.

  8. Konfigurieren Sie auf der Registerkarte Advanced für eine Premium-Cache-Instanz die Einstellungen für einen TLS-fremden Port, Clustering und Datenpersistenz. Sie können auch die zu verwendende Redis-Version auswählen, entweder 4 oder 6.

  9. Wählen Sie die Registerkarte Weiter: Tags oder unten auf der Seite die Schaltfläche Weiter: Tags aus.

  10. Geben Sie optional auf der Registerkarte Tags den Namen und den Wert ein, wenn Sie die Ressource kategorisieren möchten.

  11. Klicken Sie auf Überprüfen + erstellen. Sie werden zur Registerkarte „Überprüfen und erstellen“ weitergeleitet, auf der Azure Ihre Konfiguration überprüft.

  12. Wenn die grüne Meldung „Validierung erfolgreich“ angezeigt wird, wählen Sie Erstellen aus.

Es dauert eine Weile, bis der Cache erstellt wird. Sie können den Fortschritt auf der Seite Übersicht von Azure Cache for Redis überwachen. Wenn Wird ausgeführt als Status angezeigt wird, ist der Cache einsatzbereit.

Abrufen von Hostname, Ports und Zugriffsschlüsseln vom Azure-Portal

Um ihren Azure Cache for Redis-Server zu verbinden, benötigt der Cacheclient den Hostnamen, die Ports und einen Schlüssel für den Cache. Von einigen Clients wird unter Umständen mit etwas anderen Namen auf diese Elemente verwiesen. Sie können den Hostnamen, Ports und Zugriffsschlüssel vom Azure-Portal abrufen.

  • Wählen Sie Zugriffsschlüssel aus, um die Zugriffsschlüssel aus dem linken Navigationsbereich des Cache abzurufen.

    Azure Cache for Redis keys

  • Wählen Sie Eigenschaften aus, um den Hostnamen und die Ports aus dem linken Navigationsbereich des Cache abzurufen. Der Hostname hat das Format <DNS-Name>.redis.cache.windows.net.

    Azure Cache for Redis properties

So bearbeiten Sie die Datei CacheSecrets.config

  1. Erstellen Sie auf Ihrem Computer eine Datei mit dem Namen CacheSecrets.config. Speichern Sie sie an einem Ort, an dem sie nicht mit dem Quellcode Ihrer Beispielanwendung eingecheckt wird. In diesem Schnellstart befindet sich die Datei CacheSecrets.config im Verzeichnis C:\AppSecrets\CacheSecrets.config.

  2. Bearbeiten Sie die Datei CacheSecrets.config. Fügen Sie anschließend folgenden Inhalt hinzu:

    <appSettings>
        <add key="CacheConnection" value="<cache-name>.redis.cache.windows.net,abortConnect=false,ssl=true,allowAdmin=true,password=<access-key>"/>
    </appSettings>
    
  3. Ersetzen Sie <cache-name> durch den Cachehostnamen.

  4. Ersetzen Sie <access-key> durch den Primärschlüssel für Ihren Cache.

    Tipp

    Sie können den sekundären Zugriffsschlüssel bei der Schlüsselrotation als alternativen Schlüssel verwenden, während Sie den primären Zugriffsschlüssel neu generieren.

  5. Speichern Sie die Datei .

Aktualisieren der MVC-Anwendung

In diesem Abschnitt sehen Sie eine MVC-Anwendung mit einer Ansicht, in der ein einfacher Test für Azure Cache for Redis angezeigt wird.

So stellt die Datei „web.config“ eine Verbindung mit dem Cache her

Wenn Sie die Anwendung lokal ausführen, werden die Informationen in der Datei CacheSecrets.config verwendet, um eine Verbindung mit Ihrer Azure Cache for Redis-Instanz herzustellen. Später können Sie diese Anwendung in Azure bereitstellen. Zu diesem Zeitpunkt konfigurieren Sie eine App-Einstellung in Azure, die von der Anwendung verwendet wird, um die Cacheverbindungsinformationen anstelle dieser Datei abzurufen.

Weil die Datei CacheSecrets.config nicht mit Ihrer Anwendung in Azure bereitgestellt wird, verwenden Sie die Datei nur, wenn Sie die Anwendung lokal testen. Speichern Sie diese Informationen so sicher wie möglich, um missbräuchlichen Zugriff auf Ihre Cachedaten zu verhindern.

So aktualisieren Sie die Datei web.config

  1. Öffnen Sie im Projektmappen-Explorer die Datei web.config.

    Web.config

  2. In der Datei web.config können Sie das Element <appSetting> für das lokale Ausführen der Anwendung festlegen.

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

Die ASP.NET-Laufzeit führt die Inhalte der externen Datei mit dem Markup im <appSettings>-Element zusammen. Falls die angegebene Datei nicht gefunden wird, wird das Dateiattribut ignoriert. Ihre vertraulichen Daten (die Verbindungszeichenfolge für Ihren Cache) sind nicht Bestandteil des Quellcodes für die Anwendung. Die Datei CacheSecrets.config wird bei der Bereitstellung der Web-App in Azure nicht bereitgestellt.

Installieren von StackExchange.Redis

Ihre Lösung benötigt das Paket StackExchange.Redis für die Ausführung. Installieren Sie es wie folgt:

  1. Um die App für die Verwendung des StackExchange.Redis-NuGet-Pakets für Visual Studio zu konfigurieren, wählen Sie Extras > NuGet-Paket-Manager > Paket-Manager-Konsole aus.

  2. Führen Sie im Fenster Package Manager Console den folgenden Befehl aus:

    Install-Package StackExchange.Redis
    
  3. Das NuGet-Paket wird heruntergeladen, und die entsprechenden Assemblyverweise werden Ihrer Clientanwendung hinzugefügt, um mit dem StackExchange.Redis-Client auf Azure Cache for Redis zuzugreifen.

Verbinden mit dem Cache mittels RedisConnection

Die Verbindung mit Ihrem Cache wird von der RedisConnection-Klasse verwaltet. Die Verbindung wird zuerst in dieser Anweisung von ContosoTeamStats/Controllers/HomeController.cs hergestellt:

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

Auf den Wert des Geheimnisses CacheConnection wird über den Geheimnis-Manager-Konfigurationsanbieter zugegriffen, und der Wert wird dann als Kennwortparameter verwendet.

Sie sehen in RedisConnection.cs, dass der Namespace StackExchange.Redis dem Code hinzugefügt wurde. Dies ist für die RedisConnection-Klasse erforderlich.

using StackExchange.Redis;

Der RedisConnection-Code stellt sicher, dass immer eine fehlerfreie Verbindung mit dem Cache besteht, indem die ConnectionMultiplexer-Instanz von StackExchange.Redis verwaltet wird. Die RedisConnection-Klasse erstellt die Verbindung neu, wenn eine Verbindung verloren geht und diese nicht automatisch wieder hergestellt werden kann.

Weitere Informationen finden Sie unter StackExchange.Redis sowie den Code in einem GitHub-Repository.

Layoutansichten im Beispiel

Das Homepagelayout für dieses Beispiel ist in der Datei _Layout.cshtml gespeichert. Auf dieser Seite beginnen Sie mit dem tatsächlichen Cachetest, indem Sie auf der Seite auf Azure Cache for Redis Test (Azure Cache for Redis-Test) klicken.

  1. Erweitern Sie im Projektmappen-Explorer den Ordner Ansichten>Freigegeben. Öffnen Sie anschließend die Datei _Layout.cshtml.

  2. Sie sehen die folgende Zeile in <div class="navbar-header">:

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

    screenshot of welcome page

Anzeigen von Daten aus dem Cache

Wählen Sie auf der Startseite Azure Cache for Redis Test (Azure Cache for Redis-Test) aus, um die Beispielausgabe anzuzeigen.

  1. Erweitern Sie im Projektmappen-Explorer den Ordner Ansichten, und klicken Sie dann mit der rechten Maustaste auf den Ordner Home.

  2. Dieser Code sollte in der Datei RedisCache.cshtml angezeigt werden.

    @{
        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>
    

Lokales Ausführen der App

Standardmäßig ist das Projekt für das lokale Hosten der App in IIS Express zum Testen und Debuggen konfiguriert.

So führen Sie die App lokal aus

  1. Wählen Sie in Visual Studio Debuggen>Debugging starten aus, um die App zum Testen und Debuggen lokal zu erstellen und zu starten.

  2. Wählen Sie im Browser auf der Navigationsleiste Azure Cache for Redis Test (Azure Cache for Redis-Test) aus.

  3. Im folgenden Beispiel hat der Message-Schlüssel zuvor einen zwischengespeicherten Wert aufgewiesen, der im Portal über die Azure Cache for Redis-Konsole festgelegt wurde. Die App hat diesen zwischengespeicherten Wert aktualisiert. Außerdem hat die App die Befehle PING und CLIENT LIST ausgeführt.

    Screenshot of simple test completed local

Veröffentlichen und Ausführen in Azure

Nachdem Sie die App erfolgreich lokal getestet haben, stellen Sie die App für Azure bereit und führen sie in der Cloud aus.

So veröffentlichen Sie die App in Azure

  1. Klicken Sie in Visual Studio im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten. Wählen Sie anschließend Veröffentlichen aus.

    Publish

  2. Wählen Sie Microsoft Azure App Service, Neu erstellen und anschließend Veröffentlichen aus.

    Publish to App Service

  3. Nehmen Sie im Dialogfeld App Service erstellen folgende Änderungen vor:

    Einstellung Empfohlener Wert BESCHREIBUNG
    App-Name Verwenden Sie den Standardwert. Bei der Bereitstellung der App für Azure wird der App-Name als Hostname für die App verwendet. Dem Namen kann bei Bedarf ein Zeitstempelsuffix hinzugefügt werden, um ihn eindeutig zu machen.
    Abonnement Wählen Sie Ihr Azure-Abonnement aus. Für dieses Abonnement werden alle damit verbundenen Hostingkosten berechnet. Wenn Sie über mehrere Azure-Abonnements verfügen, stellen Sie sicher, dass das gewünschte Abonnement ausgewählt ist.
    Ressourcengruppe Verwenden Sie die Ressourcengruppe, in der Sie den Cache erstellt haben (z.B. TestResourceGroup). Die Ressourcengruppe hilft Ihnen, alle Ressourcen als Gruppe zu verwalten. Wenn Sie die App später löschen möchten, können Sie die Gruppe einfach löschen.
    App Service-Plan Wählen Sie Neu aus, und erstellen Sie anschließend einen neuen App Service-Plan mit dem Namen TestingPlan.
    Verwenden Sie den gleichen Speicherort, den Sie beim Erstellen Ihres Caches verwendet haben.
    Wählen Sie Free für die Größe aus.
    Mit einem App Service-Plan wird ein Satz von Computeressourcen für die Ausführung einer Web-App definiert.

    App Service dialog box

  4. Nachdem Sie die App Service-Hostingeinstellungen konfiguriert haben, wählen Sie Erstellen aus.

  5. Überwachen Sie in Visual Studio das Fenster Ausgabe, um den Veröffentlichungsstatus anzuzeigen. Nach der Veröffentlichung der App wird die URL für die App protokolliert:

    Publishing output

Hinzufügen der App-Einstellung für den Cache

Fügen Sie nach dem Veröffentlichen der neuen App eine neue App-Einstellung hinzu. Diese Einstellung wird zum Speichern der Cacheverbindungsinformationen verwendet.

So fügen Sie die App-Einstellung hinzu

  1. Geben Sie oben im Azure-Portal in der Suchleiste den App-Namen ein, um nach der neuen App zu suchen, die Sie erstellt haben.

    Find app

  2. Fügen Sie eine neue App-Einstellung mit dem Namen CacheConnection hinzu, die von der App zum Herstellen einer Verbindung mit dem Cache verwendet wird. Verwenden Sie den gleichen Wert, den Sie für CacheConnection in der Datei CacheSecrets.config konfiguriert haben. Der Wert enthält den Cachehostnamen und den Zugriffsschlüssel.

    Add app setting

Ausführen der App in Azure

  1. Navigieren Sie in Ihrem Browser zur URL für die App. Die URL wird in Visual Studio im Fenster „Ausgabe“ in den Ergebnissen des Veröffentlichungsvorgangs angezeigt. Sie wird auch im Azure-Portal auf der Seite „Übersicht“ der von Ihnen erstellten App angegeben.

  2. Wählen Sie auf der Navigationsleiste Azure Cache for Redis Test (Azure Cache for Redis-Test) aus, um den Cachezugriff zu testen. Die Vorgehensweise ist die gleiche wie bei der lokalen Version.

Bereinigen von Ressourcen

Wenn Sie diese Schnellstartanleitung weiterhin verwenden, können Sie die darin erstellten Ressourcen behalten und wiederverwenden.

Wenn Sie die Schnellstart-Beispielanwendung nicht mehr benötigen, können Sie die in dieser Schnellstartanleitung erstellten Azure-Ressourcen löschen, um das Anfallen von Kosten zu vermeiden.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Beim Löschen einer Ressourcengruppe werden alle darin enthaltenen Ressourcen unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen zum Hosten dieses Beispiels in einer vorhandenen Ressourcengruppe erstellt haben, die beizubehaltende Ressourcen enthält, können Sie die Ressourcen einzeln auf der linken Seite löschen, statt die Ressourcengruppe zu löschen.

So löschen Sie eine Ressourcengruppe

  1. Melden Sie sich beim Azure-Portal an, und wählen Sie anschließend Ressourcengruppen aus.

  2. Geben Sie im Feld Nach Name filtern... den Namen Ihrer Ressourcengruppe ein. In diesem Artikel wurde eine Ressourcengruppe mit dem Namen TestResources verwendet. Wählen Sie in Ihrer Ressourcengruppe in der Ergebnisliste ... und anschließend Ressourcengruppe löschen aus.

    Delete

  3. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie den Namen Ihrer Ressourcengruppe ein, und wählen Sie Löschen aus.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.

Nächste Schritte