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í: Model hlasování 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í
AppConfigurationRefresh
refreshConfigurations
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
- Předplatné Azure – vytvoření bezplatného předplatného
- Podporovaná sada Java Development Kit (JDK) s verzí 11.
- Apache Maven verze 3.0 nebo novější
- Existující úložiště konfigurace Aplikace Azure.
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
- Otevřete 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.18.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
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
Přejděte do
resources
adresáře vaší aplikace a otevřetebootstrap.properties
a nakonfigurujte Aplikace Azure Nabízená aktualizace konfigurace. Pokud soubor neexistuje, vytvořte ho. Do souboru přidejte následující řádek.Použijete
DefaultAzureCredential
k ověření ve službě App Configuration Store. Postupujte podle pokynů a přiřaďte své přihlašovací údaje roli Čtenář dat konfigurace aplikace. Před spuštěním aplikace nezapomeňte povolit dostatek času, než se oprávnění rozšíří. Vytvořte nový soubor s názvem AppConfigCredential.java a přidejte následující řádky:spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT} 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
Kromě toho musíte do projektu přidat následující kód, pokud nechcete používat spravovanou identitu:
import org.springframework.stereotype.Component; import com.azure.data.appconfiguration.ConfigurationClientBuilder; import com.azure.identity.DefaultAzureCredentialBuilder; import com.azure.spring.cloud.appconfiguration.config.ConfigurationClientCustomizer; @Component public class AppConfigCredential implements ConfigurationClientCustomizer { @Override public void customize(ConfigurationClientBuilder builder, String endpoint) { builder.credential(new DefaultAzureCredentialBuilder().build()); } }
A přidejte konfiguraci Bootstrap Configuration vytvořením
spring.factories
souboru vresources/META-INF
adresáři a přidejte následující řádky a aktualizujtecom.example.MyApplication
ho názvem a balíčkem aplikace:org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.example.MyApplication
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 pomocí Aplikace Azure konfigurace spring webové knihovny, 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.
Nastavte proměnnou prostředí.
Nastavte proměnnou prostředí s názvem APP_CONFIGURATION_ENDPOINT na koncový bod obchodu App Configuration, který najdete v části Přehled obchodu na webu Azure Portal.
Pokud používáte příkazový řádek systému Windows, spusťte následující příkaz a restartujte příkazový řádek, aby se změna projevila:
setx APP_CONFIGURATION_ENDPOINT "endpoint-of-your-app-configuration-store"
Pokud používáte PowerShell, spusťte následující příkaz:
$Env:APP_CONFIGURATION_ENDPOINT = "endpoint-of-your-app-configuration-store"
Pokud používáte macOS nebo Linux, spusťte následující příkaz:
export APP_CONFIGURATION_ENDPOINT='<endpoint-of-your-app-configuration-store>'
Restartujte příkazový řádek, aby se změna projevila. Vytiskněte hodnotu proměnné prostředí, abyste ověřili, že je správně nastavená.
Aktualizujte svůj
pom.xml
podazure-webapp-maven-plugin
configuration
přidáním<appSettings> <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString> </appSettings>
Spuštěním následujícího příkazu sestavte konzolovou aplikaci:
mvn package
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í
Na webu Azure Portal otevřete prostředek App Configuration a pak vyberte
+ Event Subscription
vEvents
podokně.Zadejte název
Event Subscription
a názevSystem Topic
. Ve výchozím nastavení jsou změněny typy událostí změněné a odstraněné klíč-hodnota, důvod je možné změnit spolu s použitím karty Filtry a zvolit přesné důvody odeslání události push.Vyberte jako
Endpoint Type
Web Hook
, vyberteSelect an endpoint
.Koncový bod je identifikátor URI aplikace + "/poháněcí/appconfiguration-refresh? {your-token-name}={your-token-secret}". Například
https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecret
Vyberte
Create
, pokud chcete vytvořit odběr události. PoCreate
výběru se do vaší aplikace odešle žádost o registraci webového háku. Požadavek obdrží klientská knihovna Aplikace Azure Konfigurace, ověřená a vrátí platnou odpověď.Výběrem
Event Subscriptions
v podokněEvents
ověřte, že se předplatné úspěšně vytvořilo.
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
Po spuštění aplikace použijte curl k otestování aplikace, například:
curl -X GET https://my-azure-webapp.azurewebsites.net
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 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ů.
- Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
- Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
- V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
- Vyberte Odstranit skupinu prostředků.
- 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.