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ónak
AppConfigurationRefresh
refreshConfigurations
, 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
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Támogatott Java Development Kit (JDK) a 11-es verzióval.
- Az Apache Maven 3.0-s vagy újabb verziója.
- Meglévő Azure-alkalmazás konfigurációs tároló.
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
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>
Á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
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.
Á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>
Frissítse az
pom.xml
azure-webapp-maven-plugin
"s add" (Hozzáadás) alatt lévőconfiguration
<appSettings> <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString> </appSettings>
Futtassa a következő parancsot a konzolalkalmazás létrehozásához:
mvn package
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
Nyissa meg az Alkalmazáskonfiguráció erőforrást az Azure Portalon, majd kattintson a
Events
panelen+ Event Subscription
.Adja meg a
Event Subscription
név és aSystem 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.Válassza ki a
Endpoint Type
mintátWeb Hook
, majd válassza a lehetőségetSelect an endpoint
.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
Kattintson ide
Create
az esemény-előfizetés létrehozásához. AmikorCreate
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.Kattintson a panelre
Event Subscriptions
annakEvents
ellenőrzéséhez, hogy az előfizetés sikeresen létrejött-e.
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
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
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 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.
- Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
- A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
- Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
- Válassza az Erőforráscsoport törlése elemet.
- 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.