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í
Přihlaste se k Azure CLI.
az login
Upgradujte rozšíření Rozhraní příkazového řádku služby Container Apps.
az extension add --name containerapp --upgrade
Zaregistrujte
Microsoft.App
obor názvů.az provider register --namespace Microsoft.App
Zaregistrujte
Microsoft.ServiceLinker
obor názvů.az provider register --namespace Microsoft.ServiceLinker
Nastavte proměnnou skupiny prostředků.
RESOURCE_GROUP="my-services-resource-group"
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
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>
Nastavte proměnnou umístění.
LOCATION="eastus"
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.
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.
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.
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.
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.
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>
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í.
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"