Freigeben über


Tutorial: Herstellen einer Verbindung zu einem Azure Cache for Redis-Dienst in Azure Container Apps (Vorschau)

Mit Azure Container Apps können Sie eine Verbindung mit Diensten herstellen, die Ihre App unterstützen, die in derselben Umgebung wie Ihre Container-App ausgeführt werden.

In der Entwicklung kann Ihre Anwendung schnell eine Verbindung zu Entwicklungsdiensten erstellen und herstellen. Diese Dienste sind einfach zu erstellen und sind Dienste auf Entwicklungsniveau, die für Nichtproduktionsumgebungen entwickelt wurden.

Wenn Sie in die Produktion wechseln, kann Ihre Anwendung eine Verbindung zu verwalteten Diensten auf Produktionsniveau herstellen.

In diesem Tutorial erfahren Sie, wie Sie den Azure Cache for Redis-Dienst auf Entwicklungsniveau und Produktionsniveau mit Ihrer Container-App verbinden.

In diesem Tutorial lernen Sie Folgendes:

  • Erstellen eines neuen Redis-Entwicklungsdiensts
  • Verbinden einer Container-App mit dem Redis-Entwicklungsdienst
  • Trennen des Diensts von der Anwendung
  • Überprüfen des Diensts, der einen In-Memory-Cache ausführt

Voraussetzungen

Resource BESCHREIBUNG
Azure-Konto Ein aktives Abonnement ist erforderlich. Falls Sie keins haben, können Sie kostenlos eins erstellen.
Azure CLI Installieren Sie die Azure CLI, falls sie auf Ihrem Computer noch nicht vorhanden ist.
Azure-Ressourcengruppe Erstellen Sie eine Ressourcengruppe mit dem Namen my-services-resource-group in der Region USA, Osten.
Azure Cache for Redis Erstellen Sie eine Azure Cache for Redis-Instanz in der Ressourcengruppe my-services-resource-group.

Einrichten

  1. Melden Sie sich bei der Azure CLI an.

    az login
    
  2. Aktualisieren Sie die CLI-Erweiterung für Container Apps.

    az extension add --name containerapp --upgrade
    
  3. Registrieren Sie den Microsoft.App-Namespace.

    az provider register --namespace Microsoft.App
    
  4. Registrieren Sie den Microsoft.ServiceLinker-Namespace.

    az provider register --namespace Microsoft.ServiceLinker
    
  5. Richten Sie die Ressourcengruppenvariable ein.

    RESOURCE_GROUP="my-services-resource-group"
    
  6. Erstellen Sie eine Variable für den DNS-Namen für Azure Cache for Redis.

    Führen Sie den folgenden Befehl aus, um eine Liste der Azure Cache for Redis-Instanzen anzuzeigen.

    az redis list --resource-group "$RESOURCE_GROUP" --query "[].name" -o table
    
  7. Erstellen Sie eine Variable zum Speichern Ihres Umgebungsnamens.

    Ersetzen Sie <MY_ENVIRONMENT_NAME> durch den Namen Ihrer Container Apps-Umgebung.

    ENVIRONMENT=<MY_ENVIRONMENT_NAME>
    
  8. Richten Sie die Standortvariable ein.

    LOCATION="eastus"
    
  9. Erstellen Sie eine neue Umgebung.

    az containerapp env create \
      --location "$LOCATION" \
      --resource-group "$RESOURCE_GROUP" \
      --name "$ENVIRONMENT"
    

Nachdem die CLI konfiguriert und eine Umgebung erstellt wurde, können Sie jetzt eine Anwendung und einen Entwicklungsdienst erstellen.

Erstellen eines Entwicklungsdiensts

Die Beispielanwendung verwaltet eine Reihe von Zeichenfolgen im Arbeitsspeicher oder im Redis-Cache.

Erstellen Sie den Redis-Entwicklungsdienst, und nennen Sie ihn myredis.

az containerapp add-on redis create \
  --name myredis \
  --resource-group "$RESOURCE_GROUP" \
  --environment "$ENVIRONMENT"

Erstellen einer Container-App

Erstellen Sie als Nächstes Ihre Container-App, auf die über das Internet zugegriffen werden kann.

  1. Erstellen Sie eine neue Container-App, und binden Sie sie an den Redis-Dienst.

    az containerapp create \
      --name myapp \
      --image mcr.microsoft.com/k8se/samples/sample-service-redis:latest \
      --ingress external \
      --target-port 8080 \
      --bind myredis \
      --environment "$ENVIRONMENT" \
      --resource-group "$RESOURCE_GROUP" \
      --query properties.configuration.ingress.fqdn
    

    Dieser Befehl gibt den vollqualifizierten Domänennamen (FQDN, Fully Qualified Domain Name) zurück. Fügen Sie diesen Speicherort in einen Webbrowser ein, damit Sie das Verhalten der Anwendung im Verlauf dieses Tutorials überprüfen können.

    Screenshot: Container-App, die einen Redis-Cachedienst ausführt.

    Der Befehl containerapp create verwendet die Option --bind, um eine Verknüpfung zwischen der Container-App und dem Redis-Entwicklungsdienst zu erstellen.

    Die Bindungsanforderung sammelt Verbindungsinformationen, einschließlich Anmeldeinformationen und Verbindungszeichenfolgen, und fügt sie als Umgebungsvariablen in die Anwendung ein. Diese Werte stehen jetzt dem Anwendungscode zur Verwendung zur Verfügung, um eine Verbindung zum Dienst herzustellen.

    In diesem Fall stehen der Anwendung die folgenden Umgebungsvariablen zur Verfügung:

    REDIS_ENDPOINT=myredis:6379
    REDIS_HOST=myredis
    REDIS_PASSWORD=...
    REDIS_PORT=6379
    

    Wenn Sie über einen Browser auf die Anwendung zugreifen, können Sie Zeichenfolgen aus der Redis-Datenbank hinzufügen und daraus entfernen. Der Redis-Cache ist für das Speichern von Anwendungsdaten verantwortlich, sodass Daten auch nach dem Neustart der Anwendung nach einer Skalierung auf null verfügbar sind.

    Sie können auch eine Bindung aus Ihrer Anwendung entfernen.

  2. Heben Sie die Bindung des Redis-Entwicklungsdiensts auf.

    Verwenden Sie die Option --unbind, um eine Bindung aus einer Container-App zu entfernen.

    az containerapp update \
      --name myapp \
      --unbind myredis \
      --resource-group "$RESOURCE_GROUP"
    

    Die Anwendung ist so geschrieben, dass die Textzeichenfolgen im Arbeitsspeicher gespeichert werden, wenn die Umgebungsvariablen nicht definiert sind.

    Wenn die Anwendung in diesem Zustand auf null skaliert wird, gehen Daten verloren.

    Sie können diese Änderung überprüfen, indem Sie zu Ihrem Webbrowser zurückkehren und die Webanwendung aktualisieren. Sie können nun sehen, dass die angezeigten Konfigurationsinformationen zeigen, dass die Daten im Arbeitsspeicher gespeichert sind.

    Jetzt können Sie die Anwendung erneut an den Redis-Dienst binden, um Ihre zuvor gespeicherten Daten anzuzeigen.

  3. Stellen Sie erneut eine Bindung an den Redis-Entwicklungsdienst her.

    az containerapp update \
      --name myapp \
      --bind myredis \
      --resource-group "$RESOURCE_GROUP"
    

    Wenn der Dienst wieder verbunden ist, können Sie die Webanwendung aktualisieren, um in Redis gespeicherte Daten anzuzeigen.

Herstellen einer Verbindung mit einem verwalteten Dienst

Wenn Ihre Anwendung bereit ist, in die Produktion zu wechseln, können Sie Ihre Anwendung an einen verwalteten Dienst anstatt eines Entwicklungsdiensts binden.

Die folgenden Schritte binden Ihre Anwendung an eine vorhandene Azure Cache for Redis-Instanz.

  1. Erstellen Sie eine Variable für Ihren DNS-Namen.

    Stellen Sie sicher, dass Sie <YOUR_DNS_NAME> durch den DNS-Namen Ihrer Azure Cache for Redis-Instanz ersetzen.

    AZURE_REDIS_DNS_NAME=<YOUR_DNS_NAME>
    
  2. Stellen Sie eine Bindung zu Azure Cache for Redis her.

    az containerapp update \
      --name myapp \
      --unbind myredis \
      --bind "$AZURE_REDIS_DNS_NAME" \
      --resource-group "$RESOURCE_GROUP"
    

    Dieser Befehl entfernt gleichzeitig die Entwicklungsbindung und richtet die Bindung an den verwalteten Dienst auf Produktionsniveau ein.

  3. Kehren Sie zum Browser zurück, und aktualisieren Sie die Seite.

    Die Konsole gibt Werte wie im folgenden Beispiel aus.

    AZURE_REDIS_DATABASE=0
    AZURE_REDIS_HOST=azureRedis.redis.cache.windows.net
    AZURE_REDIS_PASSWORD=il6HI...
    AZURE_REDIS_PORT=6380
    AZURE_REDIS_SSL=true
    

    Hinweis

    Die Namen von Umgebungsvariablen, die für Add-Ons und verwaltete Dienste verwendet werden, variieren geringfügig.

    Wenn Sie den für dieses Tutorial verwendeten Beispielcode sehen möchten, sehen Sie sich https://github.com/Azure-Samples/sample-service-redis an.

    Wenn Sie nun neue Zeichenfolgen hinzufügen, werden die Werte in einer Azure Cache for Redis-Instanz anstelle des Entwicklungsdiensts gespeichert.

Bereinigen von Ressourcen

Wenn Sie nicht planen, die in diesem Tutorial erstellten Ressourcen weiterhin zu verwenden, können Sie die Anwendung und den Redis-Dienst löschen.

Die Anwendung und der Dienst sind unabhängig. Diese Unabhängigkeit bedeutet, dass der Dienst mit einer beliebigen Anzahl von Anwendungen in der Umgebung verbunden werden kann und bis zum expliziten Löschen vorhanden ist, auch wenn alle Anwendungen von ihm getrennt werden.

Führen Sie die folgenden Befehle aus, um Ihre Container-App und den Entwicklungsdienst zu löschen.

az containerapp delete --name myapp
az containerapp add-on redis delete --name myredis

Alternativ können Sie die Ressourcengruppe löschen, um die Container-App und alle Dienste zu entfernen.

az group delete \
  --resource-group "$RESOURCE_GROUP"

Nächste Schritte