Kurz: Připojení do služby Azure Cache for Redis ve službě Azure Container Apps (Preview)

Azure Container Apps umožňuje připojit se ke službám, které podporují vaši aplikaci spuštěnou ve stejném prostředí jako vaše aplikace typu kontejner.

Při vývoji může vaše aplikace rychle vytvářet a připojovat se k vývojových službám. Tyto služby se dají snadno vytvořit a jsou to služby na úrovni vývoje navržené pro neprodukční prostředí.

Při přechodu do produkčního prostředí může vaše aplikace připojit spravované služby na úrovni produkčního prostředí.

V tomto kurzu se dozvíte, jak připojit službu Azure Cache for Redis na úrovni vývoje i produkčního prostředí ke své kontejnerové aplikaci.

V tomto kurzu se naučíte:

  • Vytvoření nové vývojové služby Redis
  • Připojení aplikaci typu kontejner do služby Redis pro vývoj
  • Odpojení služby od aplikace
  • Kontrola služby spuštěné v mezipaměti v paměti

Požadavky

Resource Popis
Účet Azure Vyžaduje se aktivní předplatné. Pokud jej nemáte, můžete si jej zdarma vytvořit.
Azure CLI Pokud ho na svém počítači nemáte, nainstalujte azure CLI .
Skupina zdrojů Azure Vytvořte skupinu prostředků my-services-resource-group v oblasti USA – východ.
Azure Cache for Redis Vytvořte instanci Azure Cache for Redis ve skupině prostředků my-services.

Nastavení

  1. Přihlaste se k Azure CLI.

    az login
    
  2. Upgradujte rozšíření Rozhraní příkazového řádku služby Container Apps.

    az extension add --name containerapp --upgrade
    
  3. Zaregistrujte Microsoft.App obor názvů.

    az provider register --namespace Microsoft.App
    
  4. Zaregistrujte Microsoft.ServiceLinker obor názvů.

    az provider register --namespace Microsoft.ServiceLinker
    
  5. Nastavte proměnnou skupiny prostředků.

    RESOURCE_GROUP="my-services-resource-group"
    
  6. Vytvořte proměnnou pro název DNS azure Cache for Redis.

    Pokud chcete zobrazit seznam instancí Azure Cache for Redis, spusťte následující příkaz.

    az redis list --resource-group "$RESOURCE_GROUP" --query "[].name" -o table
    
  7. Vytvořte proměnnou, která bude obsahovat název prostředí.

    Nahraďte <MY_ENVIRONMENT_NAME> názvem prostředí kontejnerových aplikací.

    ENVIRONMENT=<MY_ENVIRONMENT_NAME>
    
  8. Nastavte proměnnou umístění.

    LOCATION="eastus"
    
  9. Vytvořte nové prostředí.

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

S nakonfigurovaným rozhraním příkazového řádku a vytvořeným prostředím teď můžete vytvořit aplikaci a službu pro vývoj.

Vytvoření vývojové služby

Ukázková aplikace spravuje sadu řetězců, ať už v paměti, nebo v mezipaměti Redis.

Vytvořte službu Redis pro vývoj a pojmenujte ji myredis.

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

Vytvoření aplikace typu kontejner

Dále vytvořte aplikaci kontejneru přístupnou k internetu.

  1. Vytvořte novou aplikaci kontejneru a svážete ji se službou Redis.

    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
    

    Tento příkaz vrátí plně kvalifikovaný název domény (FQDN). Toto umístění vložte do webového prohlížeče, abyste mohli zkontrolovat chování aplikace v průběhu tohoto kurzu.

    Snímek obrazovky aplikace kontejneru se službou Redis Cache

    Příkaz containerapp create pomocí --bind možnosti vytvoří propojení mezi aplikací kontejneru a službou Redis pro vývoj.

    Požadavek vazby shromažďuje informace o připojení, včetně přihlašovacích údajů a připojovací řetězec, a vloží je do aplikace jako proměnné prostředí. Tyto hodnoty jsou nyní k dispozici pro kód aplikace, který se má použít k vytvoření připojení ke službě.

    V tomto případě jsou pro aplikaci k dispozici následující proměnné prostředí:

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

    Pokud k aplikaci přistupujete přes prohlížeč, můžete přidat a odebrat řetězce z databáze Redis. Mezipaměť Redis zodpovídá za ukládání dat aplikací, takže data jsou k dispozici i po restartování aplikace po škálování na nulu.

    Můžete také odebrat vazbu z aplikace.

  2. Zrušení vazby služby Redis pro vývoj

    Pokud chcete odebrat vazbu z aplikace kontejneru, použijte tuto --unbind možnost.

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

    Aplikace se zapíše tak, aby pokud proměnné prostředí nejsou definované, byly textové řetězce uloženy v paměti.

    Pokud se aplikace v tomto stavu škáluje na nulu, dojde ke ztrátě dat.

    Tuto změnu můžete ověřit tak, že se vrátíte do webového prohlížeče a aktualizujete webovou aplikaci. Zobrazené informace o konfiguraci teď ukazují, že data jsou uložená v paměti.

    Teď můžete aplikaci znovu připojit ke službě Redis, abyste viděli dříve uložená data.

  3. Znovu propoužte vývojovou službu Redis.

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

    Po opětovném připojení služby můžete webovou aplikaci aktualizovat, abyste viděli data uložená v Redisu.

Připojení do spravované služby

Až bude vaše aplikace připravená k přechodu do produkčního prostředí, můžete aplikaci svázat se spravovanou službou místo služby pro vývoj.

Následující kroky sváže vaši aplikaci s existující instancí Azure Cache for Redis.

  1. Vytvořte proměnnou pro název DNS.

    Nezapomeňte nahradit <YOUR_DNS_NAME> názvem DNS vaší instance azure Cache for Redis.

    AZURE_REDIS_DNS_NAME=<YOUR_DNS_NAME>
    
  2. Vytvoření vazby ke službě Azure Cache for Redis

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

    Tento příkaz současně odebere vývojovou vazbu a vytvoří vazbu na spravovanou službu na úrovni produkčního prostředí.

  3. Vraťte se do prohlížeče a aktualizujte stránku.

    Konzola vytiskne hodnoty jako v následujícím příkladu.

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

    Poznámka:

    Názvy proměnných prostředí používané pro doplňky a spravované služby se mírně liší.

    Pokud chcete zobrazit vzorový kód použitý pro tento kurz, přečtěte si téma https://github.com/Azure-Samples/sample-service-redis.

    Když teď přidáte nové řetězce, hodnoty se ukládají v instanci Azure Cache for Redis místo služby pro vývoj.

Vyčištění prostředků

Pokud nechcete dál používat prostředky vytvořené v tomto kurzu, můžete aplikaci a službu Redis odstranit.

Aplikace a služba jsou nezávislé. Tato nezávislost znamená, že služba může být připojena k libovolnému počtu aplikací v prostředí a existuje, dokud ji explicitně neodstraní, i když se od ní všechny aplikace odpojí.

Spuštěním následujících příkazů odstraňte aplikaci kontejneru a službu pro vývoj.

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

Případně můžete odstranit skupinu prostředků, abyste odebrali aplikaci kontejneru a všechny služby.

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

Další kroky