Megosztás a következőn keresztül:


Oktatóanyag: Dinamikus konfiguráció használata leküldéses frissítéssel Java Spring-alkalmazásban

Az alkalmazáskonfiguráció Java Spring-ügyfélkódtára támogatja a konfiguráció igény szerinti frissítését anélkül, hogy az alkalmazás újraindulhat. Az alkalmazás konfigurálható úgy, hogy az alkalmazáskonfiguráció változásait az alábbi két módszer egyikével vagy mindkettővel észlelje.

  • Lekérdezési modell: Ez az alapértelmezett viselkedés, amely lekérdezés használatával észleli a konfiguráció változásait. Ha egy beállítás gyorsítótárazott értéke lejár, a következő hívás kérést küld a kiszolgálónakAppConfigurationRefreshrefreshConfigurations, hogy ellenőrizze, változott-e a konfiguráció, és szükség esetén lekéri a frissített konfigurációt.

  • Leküldéses modell: Alkalmazáskonfigurációs események használatával észleli a konfiguráció változásait. Ha az alkalmazáskonfiguráció be van állítva, hogy kulcsérték-változási eseményeket küldjön az Event Griddel, egy webhook segítségével az alkalmazás ezen események használatával optimalizálhatja a konfiguráció frissítéséhez szükséges kérések teljes számát.

Ez az oktatóanyag bemutatja, hogyan implementálhat dinamikus konfigurációs frissítéseket a kódban leküldéses frissítéssel. A rövid útmutatókban bemutatott alkalmazásra épül. A folytatás előtt először fejezze be a Java Spring-alkalmazás létrehozását az alkalmazáskonfigurációval .

Az oktatóanyag lépéseit bármely kódszerkesztővel elvégezheti. A Visual Studio Code kiváló lehetőség, amely Windows, macOS és Linux platformokon érhető el.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Előfizetés beállítása konfigurációváltozási események alkalmazáskonfigurációból webhookba való küldéséhez
  • Spring Boot-alkalmazás üzembe helyezése az App Service-ben
  • Állítsa be a Java Spring-alkalmazást, hogy az alkalmazáskonfiguráció változásaira reagálva frissítse a konfigurációját.
  • Használja az alkalmazás legújabb konfigurációját.

Előfeltételek

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Leküldéses frissítés beállítása

  1. Nyissa meg a pom.xml fájlt , és frissítse a fájlt a következő függőségekkel.

    <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. Állítsa be a Maven App Service üzembe helyezését, hogy az alkalmazás üzembe helyezhető legyen Azure-alkalmazás Service-ben a Mavenen keresztül.

    mvn com.microsoft.azure:azure-webapp-maven-plugin:2.5.0:config
    
  3. Nyissa meg a bootstrap.properties parancsot, és konfigurálja Azure-alkalmazás konfigurációs leküldéses frissítést.

    # 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
    

A rendszer véletlenszerű késleltetést ad hozzá, mielőtt a gyorsítótárazott érték piszkosként lesz megjelölve a lehetséges szabályozás csökkentése érdekében. A gyorsítótárazott érték piszkosként való megjelölése előtt az alapértelmezett maximális késleltetés 30 másodperc.

Feljegyzés

Az elsődleges jogkivonat nevét kulcsként kell tárolni az Alkalmazáskonfigurációban, majd az elsődleges jogkivonat titkos kódját alkalmazáskonfigurációs kulcstartó-referenciaként kell tárolni a további biztonság érdekében.

Az alkalmazás létrehozása és futtatása az App Service-ben

Az Event Grid webhookok létrehozásakor érvényesítésre van szükség. Az ellenőrzéshez kövesse ezt az útmutatót, vagy indítsa el az alkalmazást a már konfigurált Azure-alkalmazás Configuration Spring Web Library használatával, amely regisztrálja az alkalmazást az Ön számára. Esemény-előfizetés használatához kövesse a következő két szakasz lépéseit.

  1. Állítsa be a környezeti változót az alkalmazáskonfigurációs példány kapcsolati sztring:

    setx AppConfigurationConnectionString <connection-string-of-your-app-configuration-store>
    
  2. Frissítse az pom.xmlazure-webapp-maven-plugin"s add" (Hozzáadás) alatt lévő configuration

    <appSettings>
      <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString>
    </appSettings>
    
  3. Futtassa a következő parancsot a konzolalkalmazás létrehozásához:

     mvn package
    
  4. A build sikeres befejezése után futtassa a következő parancsot az alkalmazás helyi futtatásához:

    mvn azure-webapp:deploy
    

Esemény-előfizetés beállítása

  1. Nyissa meg az Alkalmazáskonfiguráció erőforrást az Azure Portalon, majd kattintson a Events panelen+ Event Subscription.

    The events pane has an option to create new Subscriptions.

  2. Adja meg a Event Subscription név és a System Topic. Alapértelmezés szerint a módosított és törölt kulcsérték típusú eseménytípusok be vannak állítva, ez a Szűrők laplal együtt módosítható a leküldéses esemény pontos okainak kiválasztásához.

    Events require a name, topic, and filters.

  3. Válassza ki a Endpoint Type mintát Web Hook, majd válassza a lehetőséget Select an endpoint.

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

  4. A végpont az alkalmazás URI-ja + "/actuator/appconfiguration-refresh? {your-token-name}={your-token-secret}". Például: https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecret

  5. Kattintson ide Create az esemény-előfizetés létrehozásához. Amikor Create kiválasztja a webhook regisztrációs kérését, a rendszer elküldi az alkalmazásnak. Ezt a Azure-alkalmazás konfigurációs ügyfélkódtár ellenőrzi, és érvényes választ ad vissza.

  6. Kattintson a panelre Event Subscriptions annak Events ellenőrzéséhez, hogy az előfizetés sikeresen létrejött-e.

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

Feljegyzés

A konfigurációváltozásokra való feliratkozáskor egy vagy több szűrő használatával csökkenthető az alkalmazásnak küldött események száma. Ezek Event Grid-előfizetés-szűrőkként is konfigurálhatók. Az előfizetési szűrővel például csak egy adott sztringgel kezdődő kulcs módosításaira lehet előfizetni az eseményekre.

Feljegyzés

Ha az alkalmazás több példánya fut, használhatja azt a appconfiguration-refresh-bus végpontot, amely az Azure Service Bus beállítását igényli, amely az alkalmazás összes példányának üzenetet küld a konfiguráció frissítéséhez. Ez akkor hasznos, ha az alkalmazás több példánya fut, és biztosítani szeretné, hogy az összes példány a legújabb konfigurációval legyen frissítve. Ez a végpont csak akkor érhető el, ha spring-cloud-bus függőségként van konfigurálva. További információért tekintse meg az Azure Service Bus Spring Cloud Bus dokumentációját . A service bus-kapcsolatot csak be kell állítani, és a Azure-alkalmazás konfigurációs kódtár fogja kezelni az üzenetek küldését és fogadását.

Alkalmazás ellenőrzése és tesztelése

  1. Az alkalmazás futtatása után a curl használatával tesztelheti az alkalmazást, például:

    curl -X GET https://my-azure-webapp.azurewebsites.net
    
  2. Nyissa meg az Azure Portalt , és keresse meg az alkalmazáshoz társított alkalmazáskonfigurációs erőforrást. Válassza a Konfigurációkezelőt a Műveletek területen, és frissítse az alábbi kulcsok értékeit:

    Kulcs Érték
    application/config.message Hello – Frissítve
  3. Frissítse a böngészőlapot az új üzenet megjelenítéséhez.

Az erőforrások eltávolítása

Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.

Fontos

Az erőforráscsoport törlése nem vonható vissza. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése elemet.
  5. A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.

Következő lépések

Ebben az oktatóanyagban engedélyezte, hogy a Java-alkalmazás dinamikusan frissítse a konfigurációs beállításokat az Alkalmazáskonfigurációból. További kérdésekért tekintse meg a referenciadokumentációt, amely tartalmazza a Spring Cloud Azure-alkalmazás Konfigurációs kódtár működésével kapcsolatos összes részletet. Ha szeretné megtudni, hogyan használhat azure-beli felügyelt identitást az alkalmazáskonfigurációhoz való hozzáférés gördülékenyebbé tételéhez, folytassa a következő oktatóanyagban.