Kurz: Použití dynamické konfigurace pomocí nabízené aktualizace v aplikaci Java Spring

Klientská knihovna App Configuration Java Spring podporuje aktualizaci konfigurace na vyžádání, aniž by to způsobilo restartování aplikace. Aplikaci je možné nakonfigurovat tak, aby detekovala změny v konfiguraci aplikace pomocí jednoho nebo obou následujících dvou přístupů.

  • Model hlasování: Toto je výchozí chování, které používá dotazování k detekci změn v konfiguraci. Jakmile vyprší platnost hodnoty nastavení uložené v mezipaměti, odešle další volání AppConfigurationRefreshrefreshConfigurations požadavku na server, aby zkontrolovalo, jestli se konfigurace změnila, a v případě potřeby vyžádá aktualizovanou konfiguraci.

  • Model nabízených oznámení: K detekci změn v konfiguraci se používají události konfigurace aplikace. Jakmile je služba App Configuration nastavená tak, aby v Event Gridu odesílala události změn klíčových hodnot pomocí webhooku, může aplikace tyto události použít k optimalizaci celkového počtu požadavků potřebných k aktualizaci konfigurace.

V tomto kurzu se dozvíte, jak můžete implementovat dynamické aktualizace konfigurace v kódu pomocí nabízené aktualizace. Sestavuje se v aplikaci představené v rychlých startech. Než budete pokračovat, nejprve dokončete vytvoření aplikace Java Spring s konfigurací aplikací.

Kroky v tomto kurzu můžete provést pomocí libovolného editoru kódu. Visual Studio Code je vynikající volbou, která je dostupná na platformách Windows, macOS a Linux.

V tomto kurzu se naučíte:

  • Nastavení předplatného pro odesílání událostí změn konfigurace ze služby App Configuration do webhooku
  • Nasazení aplikace Spring Boot do služby App Service
  • Nastavte aplikaci Java Spring tak, aby aktualizovala svou konfiguraci v reakci na změny v App Configuration.
  • Využití nejnovější konfigurace ve vaší aplikaci

Požadavky

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Nastavení nabízené aktualizace

  1. Otevřete soubor pom.xml a aktualizujte soubor následujícími závislostmi.

    <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. Nastavte nasazení služby App Service Maven, aby bylo možné aplikaci nasadit do služby Aplikace Azure Prostřednictvím Mavenu.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.5.0:config
    
  3. Otevřete soubor bootstrap.properties a nakonfigurujte Aplikace Azure Nabízená aktualizace konfigurace.

    # 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
    

Náhodné zpoždění se přidá dříve, než se hodnota v mezipaměti označí jako nezašpiněná, aby se snížil potenciální omezování. Výchozí maximální zpoždění před označením hodnoty uložené v mezipaměti je 30 sekund.

Poznámka:

Název primárního tokenu by měl být uložený ve službě App Configuration jako klíč a tajný klíč primárního tokenu by se měl uložit jako referenční informace ke službě App Configuration Key Vault pro zvýšení zabezpečení.

Sestavení a spuštění aplikace ve službě App Service

Webhooky event Gridu vyžadují ověření při vytváření. Můžete to ověřit podle této příručky nebo spuštěním aplikace s již nakonfigurovanou Aplikace Azure konfigurační webovou knihovnou Spring, která vaši aplikaci zaregistruje za vás. Pokud chcete použít odběr událostí, postupujte podle kroků v následujících dvou částech.

  1. Nastavte proměnnou prostředí na připojovací řetězec vaší instance App Configuration:

    setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>
    
  2. Aktualizujte svůj pom.xml pod azure-webapp-maven-pluginconfiguration přidáním

    <appSettings>
      <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString>
    </appSettings>
    
  3. Spuštěním následujícího příkazu sestavte konzolovou aplikaci:

     mvn package
    
  4. Po úspěšném dokončení sestavení spusťte aplikaci místně spuštěním následujícího příkazu:

    mvn azure-webapp:deploy
    

Nastavení odběru událostí

  1. Na webu Azure Portal otevřete prostředek App Configuration a potom klikněte + Event Subscription do podokna Events .

    The events pane has an option to create new Subscriptions.

  2. Zadejte název Event Subscription a název System Topic. Ve výchozím nastavení jsou změněny typy událostí změněné a odstraněné klíč-hodnota, můžete to změnit spolu s použitím karty Filtry a zvolit přesné důvody odeslání události push.

    Events require a name, topic, and filters.

  3. Vyberte jako Endpoint TypeWeb Hook, vyberte Select an endpoint.

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

  4. Koncový bod je identifikátor URI aplikace + "/poháněcí/appconfiguration-refresh? {your-token-name}={your-token-secret}". Příklad: https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecret

  5. Kliknutím vytvoříte Create odběr události. Když Create vyberete žádost o registraci pro webhook, odešle se do vaší aplikace. To přijímá klientská knihovna Aplikace Azure Konfigurace, ověřená a vrací platnou odpověď.

  6. Event Subscriptions Kliknutím do Events podokna ověřte, že se předplatné úspěšně vytvořilo.

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

Poznámka:

Při přihlášení k odběru změn konfigurace je možné použít jeden nebo více filtrů ke snížení počtu událostí odeslaných do vaší aplikace. Můžete je nakonfigurovat buď jako filtry odběru služby Event Grid. Filtr odběru se například dá použít jenom k přihlášení k odběru událostí pro změny v klíči, který začíná konkrétním řetězcem.

Poznámka:

Pokud máte spuštěných více instancí aplikace, můžete použít appconfiguration-refresh-bus koncový bod, který vyžaduje nastavení služby Azure Service Bus, které se používá k odeslání zprávy všem instancím aplikace, aby se aktualizovala jejich konfigurace. To je užitečné, pokud máte spuštěných více instancí aplikace a chcete zajistit, aby všechny instance byly aktualizovány nejnovější konfigurací. Tento koncový bod není k dispozici, pokud nemáte spring-cloud-bus nakonfigurovanou závislost. Další informace najdete v dokumentaci ke službě Azure Service Bus Spring Cloud Bus. Připojení ke službě Service Bus je potřeba nastavit pouze a knihovna konfigurace Aplikace Azure zpracuje odesílání a příjem zpráv.

Ověření a testování aplikace

  1. Po spuštění aplikace použijte curl k otestování aplikace, například:

    curl -X GET https://my-azure-webapp.azurewebsites.net
    
  2. Otevřete Azure Portal a přejděte k prostředku konfigurace aplikace přidruženému k vaší aplikaci. V části Operace vyberte Průzkumníka konfigurace a aktualizujte hodnoty následujících klíčů:

    Key Hodnota
    application/config.message Hello – aktualizováno
  3. Aktualizujte stránku prohlížeče, aby se zobrazila nová zpráva.

Vyčištění prostředků

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že omylem neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.

  1. Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
  2. Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.

Po chvíli se skupina prostředků a všechny její prostředky odstraní.

Další kroky

V tomto kurzu jste povolili aplikaci Java tak, aby dynamicky aktualizovala nastavení konfigurace z app Configuration. Další dotazy najdete v referenční dokumentaci, kde najdete všechny podrobnosti o tom, jak knihovna Spring Cloud Aplikace Azure Configuration library funguje. Pokud chcete zjistit, jak pomocí spravované identity Azure zjednodušit přístup ke službě App Configuration, pokračujte dalším kurzem.