Samouczek: używanie konfiguracji dynamicznej przy użyciu odświeżania wypychanego w aplikacji Java Spring

Biblioteka kliencka Java Spring usługi App Configuration obsługuje aktualizowanie konfiguracji na żądanie bez powodowania ponownego uruchomienia aplikacji. Aplikację można skonfigurować do wykrywania zmian w usłudze App Configuration przy użyciu jednego lub obu poniższych metod.

  • Model sondowania: jest to domyślne zachowanie, które używa sondowania do wykrywania zmian w konfiguracji. Po wygaśnięciu buforowanej wartości ustawienia następne wywołanie AppConfigurationRefreshrefreshConfigurations polecenia wysyła żądanie do serwera, aby sprawdzić, czy konfiguracja uległa zmianie, i w razie potrzeby ściąga zaktualizowaną konfigurację.

  • Model wypychania: używa zdarzeń konfiguracji aplikacji do wykrywania zmian w konfiguracji. Po skonfigurowaniu usługi App Configuration w celu wysyłania zdarzeń zmiany wartości klucza za pomocą usługi Event Grid za pomocą elementu Web Hook aplikacja może użyć tych zdarzeń w celu zoptymalizowania łącznej liczby żądań wymaganych do zachowania aktualizacji konfiguracji.

W tym samouczku pokazano, jak wdrożyć aktualizacje dynamicznej konfiguracji w kodzie przy użyciu odświeżania wypychanych. Jest ona oparta na aplikacji wprowadzonej w przewodnikach Szybki start. Przed kontynuowaniem najpierw zakończ tworzenie aplikacji Java Spring za pomocą usługi App Configuration .

Aby wykonać kroki opisane w tym samouczku, możesz użyć dowolnego edytora kodu. Program Visual Studio Code to doskonała opcja dostępna na platformach Windows, macOS i Linux.

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

  • Konfigurowanie subskrypcji w celu wysyłania zdarzeń zmiany konfiguracji z usługi App Configuration do elementu Web Hook
  • Wdrażanie aplikacji Spring Boot w usłudze App Service
  • Skonfiguruj aplikację Java Spring, aby zaktualizować jej konfigurację w odpowiedzi na zmiany w usłudze App Configuration.
  • Korzystanie z najnowszej konfiguracji w aplikacji.

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Konfigurowanie odświeżania wypychanych

  1. Otwórz plik pom.xml i zaktualizuj go przy użyciu następujących zależności.

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
    </dependency>
    
    <!-- Adds the Ability to Push Refresh -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    
    <dependencyManagement>
        <dependencies>
            <dependency>
            <groupId>com.azure.spring</groupId>
            <artifactId>spring-cloud-azure-dependencies</artifactId>
            <version>5.8.0</version>
            <type>pom</type>
            <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  2. Skonfiguruj wdrożenie usługi App Service programu Maven, aby można było wdrożyć aplikację w usłudze aplikacja systemu Azure za pośrednictwem narzędzia Maven.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.5.0:config
    
  3. Otwórz plik bootstrap.properties i skonfiguruj aplikacja systemu Azure konfiguracja wypychania odświeżania.

    # Azure App Configuration Properties
    spring.cloud.azure.appconfiguration.stores[0].connection-string= ${AppConfigurationConnectionString}
    spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled= true
    spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30d
    spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key= sentinel
    spring.cloud.azure.appconfiguration.stores[0].monitoring.push-notification.primary-token.name= myToken
    spring.cloud.azure.appconfiguration.stores[0].monitoring.push-notification.primary-token.secret= myTokenSecret
    
    management.endpoints.web.exposure.include= appconfiguration-refresh
    

Opóźnienie losowe jest dodawane przed oznaczeniem buforowanej wartości jako zanieczyszczonej w celu zmniejszenia potencjalnego ograniczania przepustowości. Domyślne maksymalne opóźnienie, zanim buforowana wartość jest oznaczona jako zanieczyszczona, wynosi 30 sekund.

Uwaga

Nazwa podstawowego tokenu powinna być przechowywana w usłudze App Configuration jako klucz, a następnie klucz tajny podstawowego tokenu powinien być przechowywany jako dokumentacja usługi Key Vault usługi App Configuration w celu zapewnienia dodanych zabezpieczeń.

Kompilowanie i uruchamianie aplikacji w usłudze App Service

Elementy Web Hook usługi Event Grid wymagają weryfikacji podczas tworzenia. Możesz sprawdzić poprawność, wykonując czynności opisane w tym przewodniku lub uruchamiając aplikację przy użyciu skonfigurowanej już biblioteki internetowej aplikacja systemu Azure Configuration Spring, która zarejestruje aplikację. Aby użyć subskrypcji zdarzeń, wykonaj kroki opisane w dwóch następnych sekcjach.

  1. Ustaw zmienną środowiskową na parametry połączenia wystąpienia usługi App Configuration:

    setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>
    
  2. Zaktualizuj element pom.xml w obszarze azure-webapp-maven-plugindodawania configuration

    <appSettings>
      <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString>
    </appSettings>
    
  3. Uruchom następujące polecenie, aby skompilować aplikację konsolową:

     mvn package
    
  4. Po pomyślnym zakończeniu kompilacji uruchom następujące polecenie, aby uruchomić aplikację lokalnie:

    mvn azure-webapp:deploy
    

Konfigurowanie subskrypcji zdarzeń

  1. Otwórz zasób App Configuration w witrynie Azure Portal, a następnie kliknij + Event Subscription w okienku Events .

    The events pane has an option to create new Subscriptions.

  2. Wprowadź nazwę elementu Event Subscription i System Topic. Domyślnie są ustawione typy zdarzeń zmodyfikowane klucz-wartość i wartość klucz-wartość są ustawione, można to zmienić wraz z użyciem karty Filtry, aby wybrać dokładne przyczyny wysłania zdarzenia wypychania.

    Events require a name, topic, and filters.

  3. Wybierz element Endpoint Type jako Web Hook, wybierz pozycję Select an endpoint.

    Selecting Endpoint creates a new blade to enter the endpoint URI.

  4. Punkt końcowy to identyfikator URI aplikacji + "/siłownik/appconfiguration-refresh? {nazwa-tokenu}={twój-token-secret}". Na przykład https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecret

  5. Kliknij, Create aby utworzyć subskrypcję zdarzeń. Po Create wybraniu żądania rejestracji elementu Web Hook zostanie wysłane do aplikacji. Jest to odbierane przez bibliotekę klienta aplikacja systemu Azure Configuration, zweryfikowaną i zwraca prawidłową odpowiedź.

  6. Event Subscriptions Kliknij w okienku, Events aby sprawdzić, czy subskrypcja została utworzona pomyślnie.

    Web Hook shows up in a table on the bottom of the page.

Uwaga

Podczas subskrybowania zmian konfiguracji można użyć co najmniej jednego filtru w celu zmniejszenia liczby zdarzeń wysyłanych do aplikacji. Można je skonfigurować jako filtry subskrypcji usługi Event Grid. Na przykład filtr subskrypcji może służyć tylko do subskrybowania zdarzeń pod kątem zmian w kluczu rozpoczynającym się od określonego ciągu.

Uwaga

Jeśli masz uruchomione wiele wystąpień aplikacji, możesz użyć appconfiguration-refresh-bus punktu końcowego, który wymaga skonfigurowania usługi Azure Service Bus, który służy do wysyłania komunikatu do wszystkich wystąpień aplikacji w celu odświeżenia ich konfiguracji. Jest to przydatne, jeśli masz uruchomione wiele wystąpień aplikacji i chcesz upewnić się, że wszystkie wystąpienia są aktualizowane przy użyciu najnowszej konfiguracji. Ten punkt końcowy nie jest dostępny, chyba że masz spring-cloud-bus skonfigurowaną zależność. Aby uzyskać więcej informacji, zobacz dokumentację usługi Azure Service Bus Spring Cloud Bus. Należy skonfigurować tylko połączenie usługi Service Bus, a biblioteka konfiguracji aplikacja systemu Azure będzie obsługiwać wysyłanie i odbieranie komunikatów.

Weryfikowanie i testowanie aplikacji

  1. Po uruchomieniu aplikacji użyj narzędzia curl , aby przetestować aplikację, na przykład:

    curl -X GET https://my-azure-webapp.azurewebsites.net
    
  2. Otwórz witrynę Azure Portal i przejdź do zasobu usługi App Configuration skojarzonego z aplikacją. Wybierz pozycję Eksplorator konfiguracji w obszarze Operacje i zaktualizuj wartości następujących kluczy:

    Key Wartość
    application/config.message Witaj — zaktualizowano
  3. Odśwież stronę przeglądarki, aby wyświetlić wyświetlony nowy komunikat.

Czyszczenie zasobów

Jeśli nie chcesz nadal korzystać z zasobów utworzonych w tym artykule, usuń utworzoną tutaj grupę zasobów, aby uniknąć naliczania opłat.

Ważne

Usunięcie grupy zasobów jest nieodwracalne. Grupa zasobów i wszystkie zasoby w niej są trwale usuwane. Upewnij się, że nie usuniesz przypadkowo nieprawidłowej grupy zasobów ani zasobów. Jeśli zasoby dla tego artykułu zostały utworzone w grupie zasobów zawierającej inne zasoby, które chcesz zachować, usuń każdy zasób oddzielnie z odpowiedniego okienka zamiast usuwać grupę zasobów.

  1. Zaloguj się do witryny Azure Portal i wybierz pozycję Grupy zasobów.
  2. W polu Filtruj według nazwy wprowadź nazwę grupy zasobów.
  3. Na liście wyników wybierz nazwę grupy zasobów, aby wyświetlić przegląd.
  4. Wybierz pozycję Usuń grupę zasobów.
  5. Zobaczysz prośbę o potwierdzenie usunięcia grupy zasobów. Wprowadź nazwę grupy zasobów, aby potwierdzić, a następnie wybierz pozycję Usuń.

Po kilku chwilach grupa zasobów i wszystkie jej zasoby zostaną usunięte.

Następne kroki

W tym samouczku włączono aplikację Java w celu dynamicznego odświeżania ustawień konfiguracji z poziomu usługi App Configuration. Aby uzyskać więcej pytań, zobacz dokumentację referencyjną, zawiera ona wszystkie szczegółowe informacje na temat działania biblioteki konfiguracji spring cloud aplikacja systemu Azure. Aby dowiedzieć się, jak używać tożsamości zarządzanej platformy Azure w celu usprawnienia dostępu do usługi App Configuration, przejdź do następnego samouczka.