Cette rubrique explique comment créer une application de démonstration Spring Cloud utilisant Spring Cloud Alibaba Nacos Config pour la gestion des configurations, la déployer sur SAE, puis gérer ses configurations via la console SAE.
Stocker les valeurs de configuration directement dans le code fragilise les déploiements : toute modification d'un paramètre impose de reconstruire et de redéployer l'application. En externalisant la configuration avec Nacos, vous mettez à jour les valeurs en temps réel sans modifier le code ni redémarrer le service. SAE s'intègre à Nacos open source via Application Configuration Management (ACM). Une fois l'application déployée sur SAE, la console SAE gère et propage les modifications de configuration directement vers les instances en cours d'exécution.
Cette rubrique s'appuie sur l'application de démonstration nacos-config-example. Téléchargez nacos-config-example.zip pour suivre la procédure.
Prérequis
Avant de commencer, vérifiez que vous disposez des éléments suivants :
Maven installé et ajouté au PATH système
Un serveur Nacos local exécuté en mode autonome (voir Démarrer le serveur Nacos ci-dessous)
Une configuration créée dans la console du serveur Nacos local (voir Créer une configuration dans le serveur Nacos local ci-dessous)
Démarrer le serveur Nacos
Téléchargez et extrayez le package du serveur Nacos.
-
Accédez au répertoire
nacos/binet exécutez la commande de démarrage adaptée à votre système d'exploitation :Linux, Unix ou macOS :
sudo sh startup.sh -m standaloneWindows :
startup.cmd -m standalone
L'indicateur
-m standalonedémarre Nacos en mode autonome plutôt qu'en mode cluster (paramètre par défaut). Sous Windows, un double-clic surstartup.cmdlance le serveur en mode cluster et échoue. Pour corriger ce problème, ouvrez le fichier et définissezMODE="standalone". Consultez le Guide de démarrage rapide de Nacos pour plus de détails.
Créer une configuration dans le serveur Nacos local
Connectez-vous à la console du serveur Nacos. Le nom d'utilisateur et le mot de passe par défaut sont tous deux
nacos.Dans le volet de navigation de gauche, cliquez sur Configurations. Sur la page Configurations, cliquez sur l'icône
située dans le coin supérieur droit.-
Sur la page Create configuration, définissez les paramètres suivants et cliquez sur Publish :
Data ID :
nacos-config-example.propertiesGroup :
DEFAULT_GROUPConfiguration Content :
test.name=nacos-config-test
Étape 1 : Utiliser Nacos Config pour gérer les configurations de l'application
Compatibilité des versions
Cet exemple utilise Spring Boot 2.1.4.RELEASE et Spring Cloud Greenwich.SR1. Choisissez la version de Spring Cloud Alibaba correspondant à votre version de Spring Cloud :
| Version de Spring Cloud | Version de Spring Cloud Alibaba |
|---|---|
| Greenwich | 2.1.1.RELEASE |
| Finchley | 2.0.1.RELEASE |
| Edgware | 1.5.1.RELEASE (obsolète ; ne pas utiliser) |
Générer l'application
Créez un projet Maven nommé
nacos-config-example.-
Ajoutez les dépendances suivantes au fichier
pom.xml. Cet exemple utilise Spring Cloud Greenwich, doncspring-cloud-starter-alibaba-nacos-configest en version2.1.1.RELEASE.<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <version>2.1.1.RELEASE</version> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.SR1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> Dans
src/main/java, créez le packagecom.aliware.edas.-
Dans le package
com.aliware.edas, créez la classe de démarrageNacosConfigExampleApplication:import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class NacosConfigExampleApplication { public static void main(String[] args) { SpringApplication.run(NacosConfigExampleApplication.class, args); } } -
Dans le package
com.aliware.edas, créez le contrôleurEchoController:@Value("${test.name}")injecte la valeur de la clétest.namedepuis Nacos Config.@RefreshScopeprovoque la recréation du bean lorsque Nacos pousse une modification de configuration, ce qui met à jour automatiquement la valeur injectée sans redémarrage. Sans cette annotation, l'application lit la configuration uniquement au démarrage et ignore les modifications ultérieures.
import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RefreshScope public class EchoController { @Value("${test.name}") private String userName; @RequestMapping(value = "/") public String echo() { return userName; } } -
Dans
src/main/resources, créez le fichierbootstrap.propertieset ajoutez la configuration suivante pour connecter l'application à votre serveur Nacos local.127.0.0.1:8848est l'adresse par défaut du serveur Nacos ;18081est le port de service de l'application. Modifiez l'adresse et le port si votre serveur Nacos s'exécute ailleurs.spring.application.name=nacos-config-example server.port=18081 spring.cloud.nacos.config.server-addr=127.0.0.1:8848Pour toutes les options de configuration disponibles, consultez la section Référence de configuration.
Exécutez la méthode
maindansNacosConfigExampleApplicationpour démarrer l'application localement.
Étape 2 : Déployer l'application sur SAE
Après avoir testé l'application en local, déployez-la sur SAE. Pour les instructions de déploiement, consultez Déployer des applications.
Comment SAE remplace les paramètres Nacos
Lorsque l'application s'exécute sur SAE, SAE injecte automatiquement les détails de connexion Nacos suivants avec une priorité supérieure aux valeurs de votre fichier bootstrap.properties : l'adresse IP et le port de service du serveur Nacos, le namespace, la clé d'accès, la clé secrète et le chemin de contexte. Aucune modification du fichier bootstrap.properties n'est requise — vous pouvez conserver ou supprimer les valeurs d'origine.
Environnement d'exécution
Lors du premier déploiement via la console SAE en utilisant l'option Deployment with JAR Packages, définissez Application Runtime Environment sur Standard Java Application Runtime Environment. Sélectionnez Open JDK 8 pour Java Environment, et sélectionnez Upload JAR Package pour File Upload Method.
Créer la configuration correspondante dans SAE
Avant le déploiement, recréez la même configuration dans la gestion des configurations de SAE afin que l'application puisse la lire après le déploiement.
Connectez-vous à la console SAE. Dans le volet de navigation de gauche, cliquez sur Namespace, puis sélectionnez une région dans la barre de menu supérieure.
Sur la page Namespace, cliquez sur le nom du namespace cible.
Dans le volet de navigation de gauche, choisissez Distributed Configuration Management > Configurations. Sur la page Configurations, cliquez sur Create Configuration.
-
Dans le panneau Create configuration, définissez les paramètres et cliquez sur Create.
Paramètre Description Data ID L'identifiant de configuration. Utilisez nacos-config-example.propertiespour cet exemple. Pour garantir l'unicité, suivez la convention de nommagepackage.class— par exemple,com.taobao.tc.refund.log.level.Group Le groupe de configuration. Utilisez DEFAULT_GROUPpour cet exemple. Pour garantir l'unicité, utilisez le formatnom du produit:nom du module— par exemple,ACM:Test. Les groupes prennent en charge l'authentification.Data Encryption Active le chiffrement pour les configurations contenant des valeurs sensibles. Nécessite l'activation de Key Management Service (KMS) et l'octroi d'autorisations ACM. Les configurations chiffrées ont un Data ID préfixé par `cipher-`. Consultez Créer et utiliser une configuration chiffrée. Configuration Format Le format du contenu de configuration. Sélectionnez TEXT pour cet exemple. Configuration Content Le contenu de la configuration. Saisissez test.name=nacos-config-testpour cet exemple.Configuration Description Une description facultative pour la configuration. More Configurations Application (sous More Configuration) Le nom de l'application à laquelle appartient la configuration. Label (sous More Configuration) Libellés pour organiser les configurations. Jusqu'à cinq libellés par configuration.
Étape 3 : Vérifier le résultat
Une fois l'application démarrée sur SAE, vérifiez qu'elle lit correctement la configuration depuis SAE.
-
Exécutez la commande suivante. Remplacez
<application instance IP>et<service port>par les valeurs réelles de votre application.curl http://<application instance IP>:<service port>Exemple :
curl http://192.168.0.34:8080La commande renvoie
nacos-config-testsi l'application a chargé la configuration avec succès. > Tip: Si la commande ne renvoie pas la valeur attendue, vérifiez les journaux de l'application dans la console SAE pour confirmer que la connexion à Nacos a réussi, et assurez-vous que le Data ID et le Group dans SAE correspondent aux valeurs du fichierbootstrap.properties. -
Dans la console SAE, mettez à jour le contenu de la configuration de
nacos-config-testànacos-config-test2, puis exécutez à nouveau la commandecurl.curl http://192.168.0.34:8080La commande renvoie désormais
nacos-config-test2, confirmant que SAE a propagé la configuration mise à jour vers l'application en cours d'exécution sans redémarrage. L'annotation@RefreshScopesurEchoControllerdéclenche l'actualisation automatique.
Référence de configuration
Ajoutez l'un des éléments suivants au fichier bootstrap.properties selon vos besoins.
| Élément de configuration | Clé | Valeur par défaut | Obligatoire | Description |
|---|---|---|---|---|
| Adresse du serveur | spring.cloud.nacos.config.server-addr |
Aucune | Oui | L'adresse du serveur Nacos. |
| Préfixe du Data ID | spring.cloud.nacos.config.prefix |
${spring.application.name} |
Non | Le préfixe du Data ID. |
| Groupe | spring.cloud.nacos.config.group |
DEFAULT_GROUP |
Non | Le groupe de configuration. |
| Suffixe du Data ID et format de configuration | spring.cloud.nacos.config.file-extension |
properties |
Non | Le suffixe du Data ID et le format du fichier de configuration. Valeurs prises en charge : properties, yaml, yml. |
| Encodage du contenu | spring.cloud.nacos.config.encode |
UTF-8 |
Non | L'encodage du contenu de configuration. |
| Délai d'attente de récupération | spring.cloud.nacos.config.timeout |
3000 |
Non | Le délai d'attente pour la récupération de la configuration, en millisecondes. |
| Namespace | spring.cloud.nacos.config.namespace |
Aucune | Non | Isole les configurations entre les environnements (par exemple, développement, test et production). |
| Chemin relatif | spring.cloud.nacos.config.context-path |
Aucune | Non | Le chemin relatif de l'API du serveur. |
| Endpoint | spring.cloud.nacos.config.endpoint |
UTF-8 |
Non | L'endpoint d'un service dans la région. Utilisez-le pour résoudre dynamiquement l'adresse du serveur. |
| Activer l'écoute et l'actualisation automatique | spring.cloud.nacos.config.refresh.enabled |
true |
Non | Active l'écoute des configurations et l'actualisation automatique. Laissez cette valeur par défaut. |
Pour la liste complète des éléments de configuration, consultez la documentation Spring Cloud Alibaba Nacos Config.
Étapes suivantes
Déployer des applications — Déployez votre application Spring Cloud sur SAE en utilisant des packages JAR ou d'autres méthodes.
Créer et utiliser une configuration chiffrée — Protégez les valeurs de configuration sensibles grâce au chiffrement pris en charge par KMS.