Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
App Configuration comporte deux bibliothèques pour Spring.
-
spring-cloud-azure-appconfiguration-confignécessite Spring Boot et prend une dépendance enversspring-cloud-context. -
spring-cloud-azure-appconfiguration-config-webnécessite Spring Web avec Spring Boot et ajoute aussi la prise en charge de la vérification automatique de l’actualisation de la configuration.
Les deux bibliothèques prennent en charge le déclenchement manuel pour vérifier les valeurs de configuration actualisées.
L’actualisation vous permet de mettre à jour vos valeurs de configuration sans avoir à redémarrer votre application, même si cela entraîne la recréation de tous les objets (beans) dans @RefreshScope. Elle permet de rechercher d’éventuelles modifications apportées aux déclencheurs configurés, y compris aux métadonnées. Par défaut, la durée minimale entre les vérifications des modifications, appelée intervalle d’actualisation, est définie à 30 secondes.
L’actualisation automatisée de spring-cloud-azure-appconfiguration-config-web est déclenchée en fonction de l’activité, notamment celle de ServletRequestHandledEvent Spring Web. Si un ServletRequestHandledEvent n’est pas déclenché, l’actualisation automatique de spring-cloud-azure-appconfiguration-config-web ne déclenche pas d’actualisation même si le délai d’expiration du cache a expiré.
Utiliser l’actualisation manuelle
Pour utiliser l’actualisation manuelle, démarrez par une application Spring Boot qui utilise App Configuration, telle que l’application que vous pouvez créer en suivant le guide de démarrage rapide Spring Boot pour App Configuration.
App Configuration expose AppConfigurationRefresh, qui vérifie si l’intervalle d’actualisation est écoulé. Si l’intervalle d’actualisation est passé, il déclenche une actualisation.
Pour utiliser
AppConfigurationRefresh, mettez à jour HelloController.import com.azure.spring.cloud.config.AppConfigurationRefresh; @RestController public class HelloController { private final MessageProperties properties; @Autowired(required = false) private AppConfigurationRefresh refresh; public HelloController(MessageProperties properties) { this.properties = properties; } @GetMapping public String getMessage() throws InterruptedException, ExecutionException { if (refresh != null) { refresh.refreshConfigurations(); } return "Message: " + properties.getMessage(); } }La méthode
AppConfigurationRefreshd’refreshConfigurations()retourne unMonoqui a la valeur true si une actualisation est déclenchée, et false dans le cas contraire. False signifie que l’heure d’expiration du cache n’a pas expiré, qu’il n’y a eu aucune modification ou qu’un autre thread est en train de vérifier l’existence d’une actualisation.Remarque
Pour les bibliothèques telles que Spring WebFlux qui nécessitent des appels non bloquants,
refreshConfigurations()doivent être encapsulées dans un thread, car les configurations de chargement nécessitent un appel bloquant.new Thread(() -> refresh.refreshConfigurations()).start();Pour activer l’actualisation, mettez à jour
bootstrap.properties:spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinelOuvrez le portail Azure et accédez à la ressource App Configuration associée à votre application. Sélectionnez Explorateur de configurations sous Opérations et créez une nouvelle paire clé-valeur en sélectionnant + Créer>Clé-valeur pour ajouter les paramètres suivants :
Clé Valeur sentinelle 1 Laissez Étiquette et Type de contenu vides pour l’instant.
Sélectionnez Appliquer.
Générez votre application Spring Boot avec Maven, puis exécutez-la.
mvn clean package mvn spring-boot:runOuvrez une fenêtre de navigateur, puis accédez à l’URL :
http://localhost:8080. Vous voyez le message associé à votre clé.Vous pouvez également utiliser curl pour tester votre application, par exemple :
curl -X GET http://localhost:8080/Pour tester la configuration dynamique, ouvrez le portail Azure App Configuration associé à votre application. Sélectionnez l’Explorateur de configurations, et mettez à jour la valeur de votre clé affichée, par exemple :
Clé Valeur /application/config.message Hello – Mis à jour Mettez à jour la clé Sentinel que vous avez créée précédemment avec une nouvelle valeur. Ce changement déclenche l’application pour actualiser toutes les clés de configuration à la fin de l’intervalle d’actualisation.
Clé Valeur sentinelle 2 Actualisez la page du navigateur deux fois pour afficher le nouveau message. La première fois déclenche l’actualisation, la seconde charge les modifications.
Remarque
La bibliothèque vérifie les modifications uniquement après la fin de l’intervalle d’actualisation. Si l’intervalle d’actualisation n’a pas passé, il ne vérifie pas les modifications. Attendez que l’intervalle soit écoulé, puis déclenchez la vérification d’actualisation.
Utiliser l’actualisation automatisée
Pour utiliser l’actualisation automatisée, démarrez par une application Spring Boot qui utilise App Configuration, telle que l’application que vous pouvez créer en suivant le guide de démarrage rapide Spring Boot pour App Configuration.
Ensuite, ouvrez le fichier pom.xml dans un éditeur de texte, puis ajoutez une <dependency> pour spring-cloud-azure-appconfiguration-config-web à l’aide du code suivant.
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
<version>6.0.0</version>
</dependency>
Pour activer l’actualisation, mettez à jour
application.properties:spring.cloud.azure.appconfiguration.stores[0].monitoring.enabled=true spring.cloud.azure.appconfiguration.stores[0].monitoring.refresh-interval= 30s spring.cloud.azure.appconfiguration.stores[0].monitoring.triggers[0].key=sentinelOuvrez le portail Azure et accédez à la ressource App Configuration associée à votre application. Sélectionnez Explorateur de configurations sous Opérations et créez une nouvelle paire clé-valeur en sélectionnant + Créer>Clé-valeur pour ajouter les paramètres suivants :
Clé Valeur sentinelle 1 Laissez Étiquette et Type de contenu vides pour l’instant.
Sélectionnez Appliquer.
Générez votre application Spring Boot avec Maven, puis exécutez-la.
mvn clean package mvn spring-boot:runOuvrez une fenêtre de navigateur, puis accédez à l’URL :
http://localhost:8080. Vous voyez maintenant le message associé à votre clé.Vous pouvez également utiliser curl pour tester votre application, par exemple :
curl -X GET http://localhost:8080/Pour tester la configuration dynamique, ouvrez le portail Azure App Configuration associé à votre application. Sélectionnez l’Explorateur de configurations, et mettez à jour la valeur de votre clé affichée, par exemple :
Clé Valeur /application/config.message Hello – Mis à jour Mettez à jour la clé Sentinel que vous avez créée précédemment avec une nouvelle valeur. Ce changement déclenche l’application pour actualiser toutes les clés de configuration à la fin de l’intervalle d’actualisation.
Clé Valeur sentinelle 2 Actualisez la page du navigateur deux fois pour afficher le nouveau message. La première fois déclenche l’actualisation, la seconde charge les modifications, puisque la première requête est retournée en utilisant l’étendue d’origine.
Remarque
La bibliothèque vérifie les modifications uniquement après la fin de l’intervalle d’actualisation. Si l’intervalle d’actualisation n’a pas passé, il ne vérifie pas les modifications. Attendez que l’intervalle soit écoulé, puis déclenchez la vérification d’actualisation.
Étapes suivantes
Dans ce tutoriel, vous avez permis à votre application Spring Boot d’actualiser dynamiquement les paramètres de configuration à partir d’App Configuration. Pour trouver les réponses à d’autres questions, consultez la documentation de référence qui 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 afin de simplifier l’accès à App Configuration, passez au tutoriel suivant.