Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
App Configuration Java bibliothèque de client Spring prend en charge la mise à jour de la configuration à la demande sans entraîner le redémarrage d’une application. Une application peut être configurée pour détecter les changements dans App Configuration à l’aide de l’une ou des deux approches suivantes.
Modèle par interrogation (polling) : le modèle d’interrogation est le comportement par défaut qui utilise l’interrogation pour détecter des changements de configuration. Quand la valeur mise en cache d’un paramètre expire, l’appel suivant à
AppConfigurationRefreshderefreshConfigurationsenvoie une requête au serveur pour vérifier si la configuration a changé et récupère la configuration mise à jour si nécessaire.Modèle d’envoi (push) : utilise les événements App Configuration pour détecter des changements de configuration. Une fois App Configuration configuré pour envoyer les événements de changement de paire clé-valeur avec Event Grid via un webhook, l’application peut utiliser ces événements pour optimiser le nombre total de demandes nécessaires pour tenir la configuration à jour.
Ce tutoriel vous montre comment implémenter des mises à jour de la configuration dynamique dans votre code à l’aide de l’actualisation en mode push. Il s’appuie sur l’application mentionnée dans les guides de démarrage rapide. Avant de continuer, terminez Createz d’abord une application Spring Java avec App Configuration.
Vous pouvez utiliser l’éditeur de code de votre choix pour exécuter les étapes de ce tutoriel. Visual Studio Code est une excellente option disponible sur les plateformes Windows, macOS et Linux.
Dans ce tutoriel, vous allez apprendre à :
- Configurer un abonnement pour envoyer des événements de changement de configuration d’App Configuration à un webhook
- Déployer une application Spring Boot sur App Service
- Configurez votre application Spring Java pour mettre à jour sa configuration en réponse aux modifications apportées à App Configuration.
- Utiliser la configuration la plus récente dans votre application.
Prérequis
- abonnement Azure - créer un abonnement gratuitement
- Un environnement de développement Java pris en charge (JDK) avec la version 17.
- Apache Maven version 3.0 ou ultérieure
- Un magasin Azure App Configuration existant.
Si vous n'avez pas de compte Azure, créez un compte free avant de commencer.
Configurer l’actualisation Push
- Ouvrez pom.xml et mettez à jour le fichier avec les dépendances suivantes.
<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>7.0.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Configurez Maven App Service Deployment afin que l’application puisse être déployée sur Azure App Service via Maven.
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.5.0:configAccédez au répertoire
resourcesde votre application et ouvrezapplication.properties, puis configurez l’actualisation Push Refresh de la configuration d’application Azure. Si le fichier n’existe pas, créez-le. Ajoutez la ligne suivante au fichier.Vous utilisez le
DefaultAzureCredentialpour vous authentifier auprès de votre magasin App Configuration. Suivez les instructions pour attribuer à votre identifiant le rôle de lecteur de données de configuration de l'application. Veillez à laisser suffisamment de temps pour que l’autorisation se propage avant d’exécuter votre application. Créez un fichier nommé AppConfigCredential.java et ajoutez les lignes suivantes :spring.config.import=azureAppConfiguration 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-refreshEn outre, vous devez ajouter le code suivant à votre projet, à moins que vous ne souhaitiez utiliser Managed Identity :
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()); } }Et ajoutez une configuration Bootstrap Configuration en créant un fichier
spring.factoriessous le répertoireresources/META-INFet ajoutez les lignes suivantes et mettez à jourcom.example.MyApplicationavec le nom et le package de votre application :org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.example.MyApplication
Un délai aléatoire est ajouté avant le marquage de la valeur mise en cache comme modifiée pour réduire la limitation potentielle. Le délai maximal par défaut avant que la valeur mise en cache soit marquée comme corrompue est de 30 secondes.
Remarque
Le nom du jeton principal doit être stocké dans App Configuration en tant que clé, puis le secret du jeton principal doit être stocké en tant que référence Key Vault d'App Configuration pour une sécurité supplémentaire.
Générer et exécuter l’application dans App Service
Les webhooks d’Event Grid doivent être validés lors de leur création. Vous pouvez valider en suivant cette guide ou en démarrant votre application avec Azure App Configuration Bibliothèque web Spring déjà configurée, qui inscrit votre application pour vous. Pour utiliser un abonnement aux événements, suivez les étapes décrites dans les deux sections suivantes.
Définissez une variable d’environnement.
Définissez la variable d’environnement nommée APP_CONFIGURATION_ENDPOINT sur le point de terminaison de votre magasin App Configuration trouvé sous le Overview de votre magasin dans le portail Azure.
Si vous utilisez l’invite de commandes Windows, exécutez la commande suivante et redémarrez l’invite de commandes pour autoriser la modification à prendre effet :
setx APP_CONFIGURATION_ENDPOINT "endpoint-of-your-app-configuration-store"Si vous utilisez PowerShell, utilisez la commande suivante :
$Env:APP_CONFIGURATION_ENDPOINT = "endpoint-of-your-app-configuration-store"Si vous utilisez macOS ou Linux, exécutez la commande suivante :
export APP_CONFIGURATION_ENDPOINT='<endpoint-of-your-app-configuration-store>'Redémarrez l’invite de commandes pour que la modification soit prise en compte. Imprimez la valeur de la variable d’environnement pour confirmer qu’elle est correctement définie.
Mettre à jour votre
pom.xmlsous l’ajoutconfigurationdeazure-webapp-maven-plugin<appSettings> <AppConfigurationConnectionString>${AppConfigurationConnectionString}</AppConfigurationConnectionString> </appSettings>Exécutez la commande suivante pour générer l’application console :
mvn packageLa génération terminée correctement, lancez la commande suivante pour exécuter l’application localement :
mvn azure-webapp:deploy
Configurer un abonnement à un événement
Ouvrez la ressource App Configuration dans le portail Azure, puis sélectionnez
+ Event Subscriptiondans le voletEvents.
Entrez un nom pour
Event SubscriptionetSystem Topic. Par défaut, les types d'événements valeur-clé modifiée et valeur-clé supprimée sont définis. Vous pouvez modifier la raison et utiliser l'onglet Filtres pour choisir les raisons exactes pour lesquelles un événement Push est envoyé.
Sélectionnez
Endpoint Typeen tant queWeb Hook, sélectionnezSelect an endpoint.
Le point de terminaison est l’URL de l’application + « /actuator/appconfiguration-refresh?{your-token-name}={your-token-secret} ». Par exemple :
https://my-azure-webapp.azurewebsites.net/actuator/appconfiguration-refresh?myToken=myTokenSecretSélectionnez
Createpour créer l'abonnement à l'événement. LorsqueCreateest sélectionné, une demande d’inscription pour le Webhook est envoyée à votre application. La demande est reçue par la bibliothèque cliente Azure App Configuration, vérifiée et retourne une réponse valide.Sélectionnez
Event Subscriptionsdans le voletEventspour valider que l'abonnement a été créé avec succès.
Remarque
Quand vous vous abonnez à des changements de configuration, vous pouvez utiliser un ou plusieurs filtres pour réduire le nombre d’événements envoyés à votre application. Ceux-ci peuvent être configurés comme des filtres d'abonnement Event Grid. Par exemple, vous pouvez utiliser un filtre d’abonnement pour vous abonner uniquement aux événements liés à des changements dans une clé qui commence par une chaîne spécifique.
Remarque
Si vous avez plusieurs instances de votre application en cours d’exécution, vous pouvez utiliser le point de terminaison appconfiguration-refresh-bus qui nécessite de configurer Azure Service Bus, qui est utilisé pour envoyer un message à toutes les instances de votre application pour actualiser leur configuration. Cela est utile si vous avez plusieurs instances de votre application en cours d'exécution et que vous souhaitez vous assurer que toutes les instances sont mises à jour avec la dernière configuration. Ce point de terminaison n'est pas disponible à moins que vous n'ayez spring-cloud-bus comme une dépendance avec laquelle il est configuré. Pour plus d’informations, consultez Azure Service Bus documentation Spring Cloud Bus. La connexion Service Bus doit uniquement être configurée et la bibliothèque Azure App Configuration gère l’envoi et la réception des messages.
Vérifier et tester l’application
Lorsque votre application s’exécute, utilisez curl pour la tester. Par exemple :
curl -X GET https://my-azure-webapp.azurewebsites.netOuvrez le portail Azure et accédez à votre ressource App Configuration associée à votre application. Sélectionnez Explorateur de configuration sous Opérations et mettez à jour les valeurs des clés suivantes :
Clé Valeur application/config.message Hello – Mis à jour Actualisez la page du navigateur pour afficher le nouveau message.
Nettoyer les ressources
Si vous ne souhaitez plus utiliser les ressources créées dans cet article, supprimez le groupe de ressources que vous avez créé ici afin d’éviter des frais.
Important
La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé les ressources pour cet article dans un groupe de ressources contenant d’autres ressources que vous souhaitez conserver, supprimez chaque ressource individuellement à partir de son volet, au lieu de supprimer l’intégralité du groupe de ressources.
- Connectez-vous au portail Azure, puis sélectionnez Resource groups.
- Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
- Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
- Sélectionnez Supprimer le groupe de ressources.
- Vous êtes invité à confirmer la suppression du groupe de ressources. Entrez le nom de votre groupe de ressources à confirmer, puis sélectionnez Supprimer.
Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.
Étapes suivantes
Dans ce tutoriel, vous avez activé votre application Java pour actualiser dynamiquement les paramètres de configuration à partir d’App Configuration. Pour plus d’informations, consultez la documentation reference, il contient tous les détails sur le fonctionnement de la bibliothèque Spring Cloud Azure App Configuration. Pour savoir comment utiliser une identité managée Azure pour simplifier l’accès à App Configuration, passez au tutoriel suivant.