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

Klientská 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 detekovat změny App Configuration pomocí jednoho nebo obou následujících dvou přístupů.

  • Poll Model (Model dotazování): Toto je výchozí chování, které využívá dotazování ke zjištění změn v konfiguraci. Po vypršení platnosti hodnoty nastavení uložené v mezipaměti odešle další volání metody na server požadavek na kontrolu, jestli se konfigurace změnila, a v případě potřeby si vyžádá aktualizovanou AppConfigurationRefresh refreshConfigurations konfiguraci.

  • Model nabízených oznámení: App Configuration události k detekci změn v konfiguraci. Jakmile App Configuration nastavíte pro odesílání událostí změny hodnoty klíče pomocí Event Grid s webhooky, může aplikace tyto události použít k optimalizaci celkového počtu požadavků potřebných k aktualizaci konfigurace.

Tento kurz ukazuje, jak můžete implementovat dynamické aktualizace konfigurace v kódu pomocí nabízené aktualizace. Vychází z aplikace představené v rychlých startech. Než budete pokračovat, dokončete nejprve vytvoření aplikace Java Spring App Configuration aplikací.

Kroky v tomto kurzu můžete provést v libovolném editoru kódu. Visual Studio Code je skvělá možnost, která je k dispozici na platformách Windows, macOS a Linux.

V tomto kurzu se naučíte:

  • Nastavení odběru pro odesílání událostí změny konfigurace z App Configuration do webhooku
  • Nasazení Spring Boot aplikace do App Service
  • Nastavte svou aplikaci Java Spring tak, aby v reakci na změny v jazyce App Configuration.
  • Využít nejnovější konfiguraci v aplikaci

Požadavky

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

Nastavení nabízené aktualizace

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

            <dependency>
                <groupId>com.azure.spring</groupId>
                <artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId>
                <version>2.0.0</version>
            </dependency>
    
            <!-- Adds the Ability to Push Refresh -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
    
  2. Nastavení nasazení App Service Maven, aby bylo možné aplikaci nasadit do Azure App Service prostřednictvím Mavenu.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:1.12.0:config
    
  3. Otevřete soubor bootstrap.properties a nakonfigurujte Azure App Configuration Push Refresh a Azure Service Bus

    # 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.cacheExpiration= 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"
    

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

Poznámka

Primární název tokenu by měl být uložený App Configuration jako klíč a tajný klíč primárního tokenu by měl být uložen jako odkaz App Configuration Key Vault zabezpečení.

Místní sestavení a spuštění aplikace

Event Grid webhooky vyžadují ověření při vytvoření. Můžete to ověřit podle tohoto průvodce nebo spuštěním aplikace s již nakonfigurovanou Azure App Configuration Spring Web Library, která vaši aplikaci zaregistruje za vás. Pokud chcete použít odběr události, postupujte podle kroků v následujících dvou částech.

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

    setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>
    
  2. Spuštěním následujícího příkazu sestavte konzolovou aplikaci:

     mvn package
    
  3. Po úspěšném dokončení sestavení spusťte následující příkaz, který spustí aplikaci místně:

    mvn spring-boot:deploy
    

Nastavení odběru událostí

  1. Otevřete prostředek App Configuration v Azure Portal a potom v + Event Subscription podokně klikněte na Events .

    Podokno událostí má možnost vytvářet nová předplatná.

  2. Zadejte název pro a Event Subscription System Topic . Ve výchozím nastavení jsou Key-Value události změněné Key-Value odstraněné události. Můžete to změnit společně s použitím karty Filtry a zvolit přesné důvody, proč se má událost odeslání odeslat.

    Události vyžadují název, téma a filtry.

  3. Vyberte Endpoint Type jako Web Hook , vyberte Select an endpoint .

    Výběrem možnosti Koncový bod se vytvoří nové okno pro zadání identifikátoru URI koncového bodu.

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

  5. Kliknutím na Create vytvořte odběr události. Když je vybraná možnost , do vaší aplikace se bude odeslat žádost o Create registraci webhooku. Tato zpráva je přijata Azure App Configuration klientskou knihovnou ověřena a vrátí platnou odpověď.

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

    WebHooky se zobrazí v tabulce v dolní části stránky.

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í odesílaných do vaší aplikace. Můžete je nakonfigurovat jako filtry Event Grid předplatného nebo jako Service Bus předplatného. Například filtr předplatného lze použít k přihlášení k odběru událostí pouze pro změny v klíči, který začíná konkrétním řetězcem.

Ověření a otestování aplikace

  1. Po spuštění aplikace otestujte aplikaci pomocí nástroje curl, například:

    curl -X GET http://localhost:8080
    
  2. Otevřete Azure Portal a přejděte k prostředku App Configuration přidruženému k vaší aplikaci. V části Operace vyberte Průzkumník konfigurace a aktualizujte hodnoty následujících klíčů:

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

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 předešli 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 nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek v rámci skupiny prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte všechny prostředky jednotlivě z příslušného podokna, místo aby se odstranila skupina prostředků.

  1. Přihlaste se k Azure Portala 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ů, aby se zobrazil přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků, který chcete potvrdit, a vyberte Odstranit.

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

Další kroky

V tomto kurzu jste aplikaci v Javě povolili dynamicky aktualizovat nastavení konfigurace z App Configuration. Informace o použití spravované identity Azure ke zjednodušení přístupu k App Configuration najdete v dalším kurzu.