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

  1. Zaloguj się do interfejsu wiersza polecenia platformy Azure.

    az login
    
  2. Uaktualnij rozszerzenie interfejsu wiersza polecenia usługi Container Apps.

    az extension add --name containerapp --upgrade
    
  3. Microsoft.App Zarejestruj przestrzeń nazw.

    az provider register --namespace Microsoft.App
    
  4. Microsoft.ServiceLinker Zarejestruj przestrzeń nazw.

    az provider register --namespace Microsoft.ServiceLinker
    
  5. Skonfiguruj zmienną grupy zasobów.

    RESOURCE_GROUP="my-services-resource-group"
    
  6. 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
    
  7. Utwórz zmienną do przechowywania nazwy środowiska.

    Zastąp <MY_ENVIRONMENT_NAME> ciąg nazwą środowiska aplikacji kontenera.

    ENVIRONMENT=<MY_ENVIRONMENT_NAME>
    
  8. Skonfiguruj zmienną lokalizacji.

    LOCATION="eastus"
    
  9. 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 myredisnazwę .

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.

  1. 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.

    Zrzut ekranu przedstawiający aplikację kontenera z uruchomioną usługą Redis Cache.

    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.

  2. 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.

  3. 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.

  1. 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>
    
  2. 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.

  3. 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"

Następne kroki