Udostępnij za pośrednictwem


Samouczek: Połączenie do zarządzanego serwera konfiguracji platformy Spring w usłudze Azure Container Apps (wersja zapoznawcza)

Serwer konfiguracji dla platformy Spring udostępnia scentralizowaną lokalizację, która udostępnia dane konfiguracji wielu aplikacjom. Z tego artykułu dowiesz się, jak połączyć aplikację hostowaną w usłudze Azure Container Apps z wystąpieniem java Config Server for Spring.

Składnik Config Server for Spring używa repozytorium GitHub jako źródła ustawień konfiguracji. Wartości konfiguracji są udostępniane aplikacji kontenera za pośrednictwem powiązania między składnikiem a aplikacją kontenera. Gdy wartości zmieniają się na serwerze konfiguracji, automatycznie przepływają do aplikacji bez konieczności ponownego kompilowania lub ponownego wdrażania aplikacji.

Z tego samouczka dowiesz się, jak wykonywać następujące czynności:

  • Tworzenie składnika Config Server for Spring Java
  • Wiązanie serwera konfiguracji platformy Spring z aplikacją kontenera
  • Obserwowanie wartości konfiguracji przed i po połączeniu serwera konfiguracji z aplikacją
  • Szyfrowanie i odszyfrowywanie wartości konfiguracji przy użyciu klucza symetrycznego

Ważne

W tym samouczku są używane usługi, które mogą mieć wpływ na rachunek za korzystanie z platformy Azure. Jeśli zdecydujesz się wykonać kroki krok po kroku, upewnij się, że usunięto zasoby opisane w tym artykule, aby uniknąć nieoczekiwanych rozliczeń.

Wymagania wstępne

Do ukończenia tego projektu potrzebne są następujące elementy:

Wymaganie Instrukcje
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.

Kwestie wymagające rozważenia

Podczas uruchamiania w programie Config Server for Spring w usłudze Azure Container Apps należy pamiętać o następujących szczegółach:

Towar Wyjaśnienie
Scope Serwer konfiguracji dla platformy Spring działa w tym samym środowisku co połączona aplikacja kontenera.
Skalowanie Aby zachować pojedyncze źródło prawdy, serwer konfiguracji dla platformy Spring nie jest skalowany. Właściwości minReplicas skalowania i maxReplicas są ustawione na 1wartość .
Zasoby Alokacja zasobów kontenera dla serwera konfiguracji spring jest stała, liczba rdzeni procesora CPU wynosi 0,5, a rozmiar pamięci to 1Gi.
Cennik Serwer konfiguracji dla rozliczeń platformy Spring jest objęty cenami opartymi na użyciu. Zasoby używane przez zarządzane składniki Java są rozliczane według stawek aktywnych/bezczynnych. Możesz usunąć składniki, które nie są już używane do zatrzymywania rozliczeń.
Powiązanie Aplikacja kontenera łączy się z serwerem konfiguracji platformy Spring za pośrednictwem powiązania. Powiązanie wprowadza konfiguracje do zmiennych środowiskowych aplikacji kontenera. Po ustanowieniu powiązania aplikacja kontenera może odczytywać wartości konfiguracji ze zmiennych środowiskowych.

Ustawienia

Przed rozpoczęciem pracy z programem Config Server for Spring należy najpierw utworzyć wymagane zasoby.

Wykonaj następujące polecenia, aby utworzyć grupę zasobów i środowisko usługi Container Apps.

  1. Utwórz zmienne do obsługi konfiguracji aplikacji. Te wartości są udostępniane na potrzeby tej lekcji.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-spring-cloud-resource-group
    export ENVIRONMENT=my-spring-cloud-environment
    export JAVA_COMPONENT_NAME=myconfigserver
    export APP_NAME=my-config-client
    export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-config-client:latest"
    export URI="https://github.com/Azure-Samples/azure-spring-cloud-config-java-aca.git"
    
    Zmienna opis
    LOCATION Lokalizacja regionu świadczenia usługi Azure, w której tworzysz aplikację kontenera i składnik Java.
    ENVIRONMENT Nazwa środowiska usługi Azure Container Apps dla aplikacji demonstracyjnej.
    RESOURCE_GROUP Nazwa grupy zasobów platformy Azure dla aplikacji demonstracyjnej.
    JAVA_COMPONENT_NAME Nazwa składnika Java utworzonego dla aplikacji kontenera. W tym przypadku utworzysz składnik Config Server for Spring Java.
    IMAGE Obraz kontenera używany w aplikacji kontenera.
    URI Możesz zastąpić identyfikator URI adresem URL repozytorium Git, jeśli jest on prywatny, dodaj powiązane konfiguracje uwierzytelniania, takie jak spring.cloud.config.server.git.username i spring.cloud.config.server.git.password.
  2. Zaloguj się na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure.

    az login
    
  3. Utwórz grupę zasobów.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Utwórz środowisko aplikacji kontenera.

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

    To środowisko służy do hostowania zarówno składnika Config Server for Spring, jak i aplikacji kontenera.

Używanie składnika Config Server for Spring Java

Teraz, gdy masz środowisko usługi Container Apps, możesz utworzyć aplikację kontenera i powiązać ją ze składnikiem Config Server for Spring. Po powiązaniu aplikacji kontenera wartości konfiguracji są automatycznie synchronizowane ze składnika serwera konfiguracji z aplikacją.

  1. Utwórz składnik Config Server for Spring Java.

    az containerapp env java-component config-server-for-spring create \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --configuration spring.cloud.config.server.git.uri=$URI
    
  2. Zaktualizuj składnik Config Server for Spring Java.

    az containerapp env java-component config-server-for-spring update \
      --environment $ENVIRONMENT \
      --resource-group $RESOURCE_GROUP \
      --name $JAVA_COMPONENT_NAME \
      --configuration spring.cloud.config.server.git.uri=$URI spring.cloud.config.server.git.refresh-rate=60
    

    W tym miejscu mówisz składnikowi, gdzie można znaleźć repozytorium zawierające informacje o konfiguracji za pośrednictwem uri właściwości . Właściwość informuje usługę refresh-rate Container Apps, jak często należy sprawdzać zmiany w repozytorium Git.

  3. Utwórz aplikację kontenera, która korzysta z danych konfiguracji.

    az containerapp create \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $ENVIRONMENT \
      --image $IMAGE \
      --min-replicas 1 \
      --max-replicas 1 \
      --ingress external \
      --target-port 8080 \
      --query properties.configuration.ingress.fqdn
    

    To polecenie zwraca adres URL aplikacji kontenera, która korzysta z danych konfiguracji. Skopiuj adres URL do edytora tekstów, aby móc go użyć w kolejnym kroku.

    Jeśli odwiedzasz aplikację w przeglądarce, connectTimeout zwracana wartość to wartość domyślna .0

  4. Powiąż z serwerem konfiguracji spring.

    Po utworzeniu aplikacji kontenera i serwera konfiguracji należy powiązać je razem z poleceniem update do aplikacji kontenera.

    az containerapp update \
      --name $APP_NAME \
      --resource-group $RESOURCE_GROUP \
      --bind $JAVA_COMPONENT_NAME
    

    Parametr --bind $JAVA_COMPONENT_NAME tworzy połączenie między aplikacją kontenera a składnikiem konfiguracji.

    Po połączeniu aplikacji kontenera i składnika Config Server zmiany konfiguracji są automatycznie synchronizowane z aplikacją kontenera.

    Gdy ponownie odwiedzisz adres URL aplikacji, wartość connectTimeout to .10000 Ta wartość pochodzi z repozytorium git ustawionego w zmiennej $URI pierwotnie ustawionej jako źródło składnika konfiguracji. W szczególności ta wartość jest pobierana z connectionTimeout właściwości w pliku application.yml repozytorium.

    Żądanie powiązania wprowadza ustawienie konfiguracji do aplikacji jako zmienne środowiskowe. Te wartości są teraz dostępne dla kodu aplikacji do użycia podczas pobierania ustawień konfiguracji z serwera konfiguracji.

    W takim przypadku następujące zmienne środowiskowe są dostępne dla aplikacji:

    SPRING_CLOUD_CONFIG_URI=http://$JAVA_COMPONENT_NAME:80
    SPRING_CLOUD_CONFIG_COMPONENT_URI=http://$JAVA_COMPONENT_NAME:80
    SPRING_CONFIG_IMPORT=optional:configserver:$SPRING_CLOUD_CONFIG_URI
    

    Jeśli chcesz dostosować własny SPRING_CONFIG_IMPORTelement , możesz odwołać się do zmiennej środowiskowej SPRING_CLOUD_CONFIG_COMPONENT_URI, na przykład możesz zastąpić argumentami wiersza polecenia, takimi jak Java -Dspring.config.import=optional:configserver:${SPRING_CLOUD_CONFIG_COMPONENT_URI}?fail-fast=true.

    Można również usunąć powiązanie z aplikacji.

  5. Usuń powiązanie składnika Config Server for Spring Java.

    Aby usunąć powiązanie z aplikacji kontenera, użyj --unbind opcji .

    az containerapp update \
      --name $APP_NAME \
      --unbind $JAVA_COMPONENT_NAME \
      --resource-group $RESOURCE_GROUP
    

    Gdy ponownie odwiedzisz adres URL aplikacji, wartość connectTimeout zmienia się z powrotem na 0.

Czyszczenie zasobów

Zasoby utworzone w tym samouczku mają wpływ na rachunek za platformę Azure. Jeśli nie zamierzasz korzystać z tych usług długoterminowych, uruchom następujące polecenie, aby usunąć wszystkie elementy utworzone w tym samouczku.

az group delete \
  --resource-group $RESOURCE_GROUP

Następne kroki