Samouczek: Połączenie do usługi Azure Cache for Redis w usłudze Azure Container Apps (wersja zapoznawcza)
Usługa Azure Container Apps umożliwia łączenie się z usługami obsługującymi aplikację uruchomioną w tym samym środowisku co aplikacja kontenera.
Podczas opracowywania aplikacja może szybko tworzyć usługi deweloperskie i łączyć się z nimi. Te usługi są łatwe do utworzenia i są usługami klasy programistycznej przeznaczonymi dla środowisk nieprodukcyjnych.
Podczas przechodzenia do środowiska produkcyjnego aplikacja może łączyć usługi zarządzane klasy produkcyjnej.
W tym samouczku pokazano, jak połączyć zarówno usługę Azure Cache for Redis klasy deweloperów, jak i produkcyjną z aplikacją kontenera.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie nowej usługi programistycznej Redis
- Połączenie aplikacji kontenera do usługi dewelopera Redis
- Odłączanie usługi od aplikacji
- Sprawdzanie usługi z uruchomioną pamięcią podręczną w pamięci
Wymagania wstępne
Zasób | opis |
---|---|
Konto platformy Azure | Wymagana jest aktywna subskrypcja. Jeśli nie masz konta, możesz je utworzyć teraz za darmo. |
Interfejs wiersza polecenia platformy Azure | Zainstaluj interfejs wiersza polecenia platformy Azure, jeśli nie masz go na maszynie. |
Grupa zasobów platformy Azure | Utwórz grupę zasobów o nazwie my-services-resource-group w regionie Wschodnie stany USA . |
Azure Cache for Redis | Utwórz wystąpienie usługi Azure Cache for Redis w grupie zasobów my-services-resource-group. |
Konfiguruj
Zaloguj się do interfejsu wiersza polecenia platformy Azure.
az login
Uaktualnij rozszerzenie interfejsu wiersza polecenia usługi Container Apps.
az extension add --name containerapp --upgrade
Microsoft.App
Zarejestruj przestrzeń nazw.az provider register --namespace Microsoft.App
Microsoft.ServiceLinker
Zarejestruj przestrzeń nazw.az provider register --namespace Microsoft.ServiceLinker
Skonfiguruj zmienną grupy zasobów.
RESOURCE_GROUP="my-services-resource-group"
Utwórz zmienną dla nazwy DNS usługi Azure Cache for Redis.
Aby wyświetlić listę wystąpień usługi Azure Cache for Redis, uruchom następujące polecenie.
az redis list --resource-group "$RESOURCE_GROUP" --query "[].name" -o table
Utwórz zmienną do przechowywania nazwy środowiska.
Zastąp
<MY_ENVIRONMENT_NAME>
ciąg nazwą środowiska aplikacji kontenera.ENVIRONMENT=<MY_ENVIRONMENT_NAME>
Skonfiguruj zmienną lokalizacji.
LOCATION="eastus"
Utwórz nowe środowisko.
az containerapp env create \ --location "$LOCATION" \ --resource-group "$RESOURCE_GROUP" \ --name "$ENVIRONMENT"
Po skonfigurowaniu interfejsu wiersza polecenia i utworzeniu środowiska można teraz utworzyć aplikację i usługę dewelopera.
Tworzenie usługi dewelopera
Przykładowa aplikacja zarządza zestawem ciągów w pamięci lub w pamięci podręcznej Redis.
Utwórz usługę dewelopera Redis i nadaj jej myredis
nazwę .
az containerapp add-on redis create \
--name myredis \
--resource-group "$RESOURCE_GROUP" \
--environment "$ENVIRONMENT"
Tworzenie aplikacji kontenera
Następnie utwórz aplikację kontenera z dostępem do Internetu.
Utwórz nową aplikację kontenera i powiąż ją z usługą 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
To polecenie zwraca w pełni kwalifikowaną nazwę domeny (FQDN). Wklej tę lokalizację w przeglądarce internetowej, aby można było sprawdzić zachowanie aplikacji w tym samouczku.
Polecenie
containerapp create
używa--bind
opcji , aby utworzyć link między aplikacją kontenera i usługą dev Service Redis.Żądanie powiązania zbiera informacje o połączeniu, w tym poświadczenia i parametry połączenia, i wprowadza je do aplikacji jako zmienne środowiskowe. Te wartości są teraz dostępne dla kodu aplikacji do użycia w celu utworzenia połączenia z usługą.
W takim przypadku następujące zmienne środowiskowe są dostępne dla aplikacji:
REDIS_ENDPOINT=myredis:6379 REDIS_HOST=myredis REDIS_PASSWORD=... REDIS_PORT=6379
Jeśli uzyskujesz dostęp do aplikacji za pośrednictwem przeglądarki, możesz dodawać i usuwać ciągi z bazy danych Redis. Pamięć podręczna Redis cache jest odpowiedzialna za przechowywanie danych aplikacji, więc dane są dostępne nawet po ponownym uruchomieniu aplikacji po skalowaniu do zera.
Można również usunąć powiązanie z aplikacji.
Usuń powiązanie usługi dewelopera Redis.
Aby usunąć powiązanie z aplikacji kontenera, użyj
--unbind
opcji .az containerapp update \ --name myapp \ --unbind myredis \ --resource-group "$RESOURCE_GROUP"
Aplikacja jest zapisywana tak, aby jeśli zmienne środowiskowe nie zostały zdefiniowane, ciągi tekstowe są przechowywane w pamięci.
W tym stanie, jeśli aplikacja skaluje się do zera, dane zostaną utracone.
Tę zmianę można zweryfikować, wracając do przeglądarki internetowej i odświeżając aplikację internetową. Wyświetlane informacje o konfiguracji wskazują, że dane są przechowywane w pamięci.
Teraz możesz ponownie połączyć aplikację z usługą Redis, aby wyświetlić wcześniej przechowywane dane.
Ponownie powiąż usługę dewelopera Redis.
az containerapp update \ --name myapp \ --bind myredis \ --resource-group "$RESOURCE_GROUP"
Po ponownym połączeniu usługi możesz odświeżyć aplikację internetową, aby wyświetlić dane przechowywane w usłudze Redis.
Połączenie do usługi zarządzanej
Gdy aplikacja jest gotowa do przejścia do środowiska produkcyjnego, możesz powiązać aplikację z usługą zarządzaną zamiast z usługą dewelopera.
Poniższe kroki wiążą aplikację z istniejącym wystąpieniem usługi Azure Cache for Redis.
Utwórz zmienną dla nazwy DNS.
Pamiętaj, aby zastąpić
<YOUR_DNS_NAME>
ciąg nazwą DNS wystąpienia usługi Azure Cache for Redis.AZURE_REDIS_DNS_NAME=<YOUR_DNS_NAME>
Wiązanie z usługą Azure Cache for Redis.
az containerapp update \ --name myapp \ --unbind myredis \ --bind "$AZURE_REDIS_DNS_NAME" \ --resource-group "$RESOURCE_GROUP"
To polecenie jednocześnie usuwa powiązanie programistyczne i ustanawia powiązanie z usługą zarządzaną klasy produkcyjnej.
Wróć do przeglądarki i odśwież stronę.
Konsola wyświetla wartości podobne do poniższego przykładu.
AZURE_REDIS_DATABASE=0 AZURE_REDIS_HOST=azureRedis.redis.cache.windows.net AZURE_REDIS_PASSWORD=il6HI... AZURE_REDIS_PORT=6380 AZURE_REDIS_SSL=true
Uwaga
Nazwy zmiennych środowiskowych używane dla dodatków i usług zarządzanych różnią się nieznacznie.
Jeśli chcesz zobaczyć przykładowy kod używany na potrzeby tego samouczka, zobacz https://github.com/Azure-Samples/sample-service-redis.
Teraz po dodaniu nowych ciągów wartości są przechowywane w wystąpieniu usługi Azure Cache for Redis zamiast usługi dev.
Czyszczenie zasobów
Jeśli nie planujesz nadal korzystać z zasobów utworzonych w tym samouczku, możesz usunąć aplikację i usługę Redis.
Aplikacja i usługa są niezależne. Ta niezależność oznacza, że usługa może być połączona z dowolną liczbą aplikacji w środowisku i istnieje, dopóki nie zostanie jawnie usunięta, nawet jeśli wszystkie aplikacje zostaną odłączone od niej.
Uruchom następujące polecenia, aby usunąć aplikację kontenera i usługę dewelopera.
az containerapp delete --name myapp
az containerapp add-on redis delete --name myredis
Alternatywnie możesz usunąć grupę zasobów, aby usunąć aplikację kontenera i wszystkie usługi.
az group delete \
--resource-group "$RESOURCE_GROUP"